Since trying to explain how the particular sort algorithm would produce random results is somewhat complicated I decided that running a large test would be an easier way to demonstrate.
Performing multiple sorts one after the other reduced the bias and sorting a table multiple times reduces the bias. Sorting a ten element table fifteen times appears to give fairly random results (I couldn't see any particular bias across multiple tests when I did that).
If you only have a few items to sort then the bias isn't going to be all that great and you can reduce it by repeating the sort.
The sort actually showed less bias with subtracting .25 instead of .5 and four sorts using .25 gave me more random results than fifteen sorts using .5. The results after running a million tests with four sorts subtracting .25 gave all the possibilities within a fraction of 1% of each other and rerunning the test suite several times gave similar results with no obvious bias showing up between tests.
So instead of
the following will give a far more random result:
So creating your own sort code might just possibly be more efficient than running the inbuilt one four times.