RNG.DK generates random numbers using the browser's built-in Web Crypto API
(crypto.getRandomValues()), which provides cryptographically strong randomness
suitable for security-sensitive and fairness-sensitive applications.
This is fundamentally different from Math.random(), which uses a deterministic
pseudo-random algorithm that can be predictable. crypto.getRandomValues() is
implemented as a secure PRNG seeded from system entropy sources — a randomness source
suitable for cryptographic use, and appropriate for fairness-sensitive applications,
simulations, gaming, and statistical sampling.
A 32-bit unsigned integer is drawn from Uint32Array (range 0–4,294,967,295),
then scaled to the requested [min, max] interval using modulo-free scaling to avoid bias.
The 32-bit value is divided by 2³² to produce a uniform float in [0, 1), giving approximately 9–10 decimal places of resolution.