Permuted congruential generator
(64→32ビット)count = (int)(x >> 59); x ^= x >> 18; return rotr32((uint32_t)(x >> 27), count);
XSH-RS: 上の方法よりシフト量を決めるのに使われるビットが少ない。 (64→32ビット)count = (int)(x >> 61); x ^= x >> 22; return (uint32_t)(x >> (22 + count));
XSL-RR: XSH-RRを単純化したもので、これは64ビットマシンで128ビットの状態を持つ実装に最適化されている。 (128→64ビット)count = (int)(x >> 122); x64 = (uint64_t)(x ^ (x >> 64)); return rotr64(x64, count);
RXS-M-XS: 状態の半分を出力する場合、この方法は最も遅いが最も強い方法である。以下に示すように状態の全体を出力する場合は最も弱い方法になる。これを使う場合は状態のサイズが32ビットまたは64ビットに制限される。