These buttons allow some experimentation. You can, for instance, sort the bars then change from ascending to descending without randomizing. The subsequent sort will show you how the method behaves with an array that is totally unordered. Also resorting an array that is already sorted (in the same direction) might offer insight as to the viability of a sort method. (In an application a sort method may be called to reorder an array after only one element is added.)
Partitioning is programmed for all methods mostly to allow you to see why recursion is not desirable. It may also offer insight for experimentation. Since Quicksort and Merge sort are intrinsically recursive, this setting will have no effect on them. Note, quicksort sorts macro to micro, while mergesort sorts micro to macro.
The more advanced sort methods involve combinations of methods - like a quick sort to a certain point and then an insertion sort. Modifying the code should allow you to experiment with various combinations. Also some more advanced methods like a radix sort involve the use of multiple arrays (an input and one or more output arrays). These methods are beyond the scope of this single array viewer.
Note that in the bottom right corner the key to the current operation is displayed by the following color codes: