How Random?
This tool uses crypto.getRandomValues, the browser's cryptographic random source. It's drawn from the operating system's CSPRNG and is suitable for drawings, raffles, and game randomization. It is not subject to the predictability issues of Math.random().
Bias-Free Range Sampling
Naive "min + random 횞 (max ??min + 1)" introduces tiny bias when the range doesn't divide evenly into 2쨀짼 (the RNG's output space). This tool uses rejection sampling: it discards values outside the largest multiple of the range size to guarantee uniform distribution.
Fisher-Yates Shuffle
The Shuffle tab implements the modern Fisher-Yates (Knuth) algorithm, which produces every permutation with equal probability when the RNG is unbiased.