Skip to content

How random works

Every tool on Randomizers.io aims to give you fair, unbiased results. Here is how we do it.

Cryptographically secure randomness

When your browser supports it, we use the Web Crypto API (crypto.getRandomValues) as our source of randomness. This is the same class of random number generator used for security-sensitive tasks, and it produces values that are far less predictable than the standard Math.random().

Avoiding modulo bias

Naively mapping a random number into a range (for example with the modulo operator) can make some outcomes slightly more likely than others. We use rejection sampling, discarding values that would fall outside an evenly divisible range, so every outcome has an equal chance.

Fair shuffles

When we shuffle a list or draw items in order, we use the Fisher-Yates algorithm, which produces every possible ordering with equal probability. This keeps team drafts, name draws, and raffles genuinely fair.

Everything runs locally

Randomness is generated on your own device. Nothing about your inputs or results is sent to a server, so what you generate stays private to you.