petdance/scratch — Issue #820: Make RNG algorithm used by rand dynop pluggable
Author: petdance
Created: 2011-11-14 06:13:38+00:00
State: open
Labels: bug, core, Pri-minor, Sev-low

Parrot's current PRNG is an old-style LCG: decent speed, but relatively poor randomness characteristics. According to http://en.wikipedia.org/wiki/Mersenne_twister at least PHP, Python, and Ruby use the more advanced (but still not cryptographically secure) Mersenne Twister in their standard libraries. Users from those languages will expect the higher-quality PRNG, so we should do at least as well -- either by switching to a free Mersenne Twister implementation, or by choosing an even more advanced algorithm instead.

Originally http://trac.parrot.org/parrot/ticket/923 by @japhb