An old cave filled with thoughts on old school fantasy RPGS and their simulacrum like Dungeons and Dragons and Labyrinth Lord.
Generate Random Number with PHP Using /dev/urandom
23 Apr 2010 09:14:33
Category: PHP Development
I found lots of people on the inter-tubes saying use /dev/urandom to generate a better random number. But couldn't find examples of how this was done using PHP. But I figured it out so here's how I do it.
function getRandom($min, $max)
{
$bits = '';
$diff = $max-$min;
$bytes = ceil($diff/256);
$fp = @fopen('/dev/urandom','rb');
if ($fp !== FALSE) {
$bits .= @fread($fp,$bytes);
@fclose($fp);
}
$bitlength = strlen($bits);
for ($i = 0; $i < $bitlength; $i++) {
$int = 1+(ord($bits[$i]) % (($max-$min)+1));
}
return $int;
}
echo getRandom(1, 20);
Use of /dev/urandom decreases the likely hood that a random number created at the same time will be duplicate. mt_rand is still good for most things. Of course I'm making no claim that the above code is cryptographically secure.
In speed tests I found that /dev/urandom was much much slower then using mt_rand(). But speed is not why you use /dev/urandom.








