xorshift*
generators are fast, high-quality PRNGs (pseudorandom number
generators) obtained by scrambling the output of a Marsaglia xorshift
generator with a 64-bit invertible multiplier (as suggested by
Marsaglia in his paper). They pass BigCrush from TestU01, but their
lowest bits have mild linear artifacts (like the Mersenne Twister,
WELL, etc.), and will fail linearity tests. This has no impact in
practice, and has no impact at all if you generate floating-point
numbers using the highest 53 bits. The exact linear complexity of the
lower bits can be estimated using results from this paper.
xorshift+
generators are a 64-bit version of Saito and Matsumoto's XSadd
generator. Instead of using a multiplication, we return the sum (in Z/264Z)
of two consecutive output of a xorshift
generator. As in the previous case, the generators pass BigCrush from TestU01, but again their
lowest bits have mild (in fact, even milder) linear artifacts. Albeit superseded by our new generators,
xorshift128+
is presently used in the JavaScript engines of
Chrome,
Node.js,
Firefox,
Safari and
Microsoft Edge.
xorshift128+
is a weaker generator than, say, xoroshiro128+
, as it fails
this test after 6 GB of output.