Also generally known as LFSRs (Linear Feedback Shift Registers): <a href="https://en.wikipedia.org/wiki/Linear-feedback_shift_register" rel="nofollow">https://en.wikipedia.org/wiki/Linear-feedback_shift_register</a>. One advantange is that they can be easily implemented in hardware (and then very cheaply implemented in emulators). For instance the noise generators in audio chips of 80s home computers were typically an LFSR with around 16 bits of state.
Was just reading about this because I am writing a chess engine. I am using somebody else's move generator, I am not sure how it works but it is not front of mind because it is spending most time evaluating and managing transposition tables according to the profiler, I can at least 5x those and maybe I will worry about another microoptimisation then. But really move ordering can make a 10x change and I am going to iterative deepening, pv, killer heuristic and such.
Is there any particular reason why this straightforward implementation of a well-known PRNG (published by Marsaglia 20 years ago) is worth being linked from HN's first page?