On Sat, Oct 3, 2009 at 1:57 AM, Duncan Coutts <duncan.coutts@googlemail.com> wrote:

Internally, each time you demand the next random number, it is mutating
the internal ST array.

This is the same thing that the Statistics.RandomVariate code in the statistics package does, and it can be very fast: http://www.serpentine.com/blog/2009/09/19/a-new-pseudo-random-number-generator-for-haskell/