Hi,

Its good news that Ruby 1.7.x and later uses the Mersenne Twister for
rand. However, I feel we should have "taken it all the way" and introduced
a class for RNG's for which MersenneTwister is subclass and rand/srand
are really calls to an instance of a MersenneTwister instance.

I'd like to know any reasons not to go down that route. The added
complexity would be minimal since the mt algorithm is already in the
interpreter.

The main benefits imho would be:

* Multiple different rng streams can be used independently from each other
* Persistence of rng streams by marshalling MT objects
* Conceptually nicer, more oo

Regards,

Robert Feldt