You can do it with a recursive function. It looks at the entire list, finds the smallest number, swaps it with the last position's number, then repeats with a list shortened by one, until it gets down to the last one, which shuld be the biggest number, at the top of the list.
; recursive sort Dim sortlist(6) For i = 1 To 6 sortlist(i) = Rand(100) Print "Sortlist("+i+") = " + sortlist(i) Next sort(6) Print "---" For i = 1 To 6 Print "Sortlist("+i+") = " + sortlist(i) Next Print "---" For i = 1 To 6 Print "Difference("+i+") = " + (sortlist(1) - sortlist(i)) Next WaitKey Function sort(depth) If depth = 1 Then Return low% = 1 For i = 2 To depth If sortlist(i) < sortlist(low) Then low = i Next temp% = sortlist(depth) sortlist(depth) = sortlist(low) sortlist(low) = temp sort(depth - 1) End Function