Roland Mai wrote: > I need a random number generator that generates random numbers with a > uniform distribution. > > I am not sure what rand does in ruby and I can't seem to find it online > either. My initial assumption is that it follows a uniform distribution, > but > I can't tell. > > Any ideas? Yes, rand() is uniform in the interval 0 <= x < 1. It's based on MT19937. If you have a working ri installation, then you can read about it this way: $ ri Kernel#rand | cat ------------------------------------------------------------ Kernel#rand rand(max=0) => number ------------------------------------------------------------------------ Converts max to an integer using max1 = max.to_i.abs. If the result is zero, returns a pseudorandom floating point number greater than or equal to 0.0 and less than 1.0. Otherwise, returns a pseudorandom integer greater than or equal to zero and less than max1. Kernel::srand may be used to ensure repeatable sequences of random numbers between different runs of the program. Ruby currently uses a modified Mersenne Twister with a period of 219937-1. srand 1234 #=> 0 [ rand, rand ] #=> [0.191519450163469, 0.49766366626136] [ rand(10), rand(1000) ] #=> [6, 817] srand 1234 #=> 1234 [ rand, rand ] #=> [0.191519450163469, 0.49766366626136] -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407