From: Lars Christensen Date: 2008-08-18T19:11:48+09:00 Subject: Re: Not So Random (#173) My solution: class Random def initialize(n, seed = rand(2**32)) @n = n @seed = @iseed = seed end def next Thread.critical = true srand(@seed) @seed = @seed ^ rand(2**32) val = rand(@n) Thread.critical = false return val end def reset @seed = @iseed end end