Roland M. 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]