Generates the next pseudorandom number. Subclasses should override this, as this is used by all other methods.
The general contract of next is that it returns an
int value and if the argument bits is between
1 and 32 (inclusive), then that many low-order
bits of the returned value will be (approximately) independently
chosen bit values, each of which is (approximately) equally
likely to be 0 or 1. The method next is
implemented by class Random by atomically updating the seed to
(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)
and returning
(int)(seed >>> (48 - bits)).
This is a linear congruential pseudorandom number generator, as
defined by D. H. Lehmer and described by Donald E. Knuth in
The Art of Computer Programming, Volume 2:
Seminumerical Algorithms, section 3.2.1.
bits | random bits |
Diagram: Random