1. Steve Losh
  2. cl-pcg



cl-pcg is a permuted congruential generator implementation in pure Common Lisp.

Permuted congruential generators are seedable, small, fast, fairly-hard-to-predict random number generators. They can be useful for things like games. They can also be advanced and rewound efficiently.

PCGs are not cryptographically secure. If you need that, look elsewhere.

Testing with Dieharder

There's a Roswell script you can use to make a little executable that will spew random bytes to stdout, suitable for piping into dieharder:

make build/pcg
./build/pcg | dieharder -a -g 200

build/pcg will dump out infinite random bytes until stdout breaks, so maybe don't run it in a bare terminal unless you want to just totally hose it.