Creates a Binary tree, recursively moves larger 'Child' elements to be in place of smaller 'Parent' elements. After creating the heap, swaps the largest element into place, the largest element will always be at index 1 in this case. From there, the new element at index 1 is again recursively moved down, until all 'Child' elements are smaller than their 'Parent' elements. Use different codes for different starting scrambles: 'Sorted' - Starts with the array already sorted. 'Reverse' - Starts with a reversed array. 'Very Random' - The value of every element is random. 'Similar Values' - Elements are divided into 2 similar groups. 'Sine' - Starts with the array sorted, and as a -90° to 90° Sine Wave. 'Sine Random' - The array is a -90° to 90° Sine Wave. If there's no match for a sort code, the array is set to every number from 1 to 300.