If it works like .net's CompareTo, the Sort expects a comparison of two objects to return a value of...
=0 -- if the objects are "equal"
<0 -- if the first object is "less than" the second
>0 -- if the first object is "greater than" the second
The Sort can then arrange the objects according to their comparisons,
BUT! Here it receives a "random" value between -0.5 and +0.5 -- thereby resulting in an unpredictably arranged sequence of objects.