RandomShuffle uses one random number generator to shuffle the numbers
produced by another to obliterate sequential correlations.
To initialize a RandomShuffle, pass it two RandomElements. The
first RandomElement is used to generate a table of random numbers
and the second is used to choose one from the table. An example of
usage is,
RandomElement markov=new RandomShuffle(new Ranecu(),new Ranmar(),32)
which would generate a deck of 32 numbers from
RANECU and
use
RANMAR to choose from the deck.
References:
- F. James; Comp. Phys. Comm. 60 (1990) p 329-344
- D. Knuth; The Art of Computer Programming vol. 2, sec 3.2.2
Source code is available.