I wrote another function to get a random float, if its not precise enougth jut add some '0' to the $mul parameter.
<?php
function f_rand($min=0,$max=1,$mul=1000000){
if ($min>$max) return false;
return mt_rand($min*$mul,$max*$mul)/$mul;
}
?>
I made following tests:
<?php
echo f_rand()."<br>"; //0.497153
echo f_rand(0.5)."<br>"; //0.857822
echo f_rand(0.5,0.6)."<br>"; //0.599956
echo f_rand(0,10)."<br>"; //5.801949
echo f_rand(0,2,2)."<br>"; //1.5
echo f_rand(0,2,10)."<br>"; //1.7
?>