Random number generator

Numbers, dice, coin flips, and list picker

Min
to
Max
How many numbers?
max 100
When you need a truly random number
🎲 Tabletop games
Roll any dice combination for D&D, Pathfinder, or any tabletop RPG. The D4 through D20 cover the full standard polyhedral set — roll multiple dice and get the total instantly.
🎁 Giveaways & raffles
Enter all participant names in the list picker and draw one or more winners. The cryptographically secure shuffle ensures every entry has an equal chance.
🔢 Statistics & sampling
Generate random samples from a known range for statistical exercises, A/B test assignments, or selecting random records from a dataset.
🤔 Decision making
Enter your options in the list picker and let chance decide — useful when two choices are genuinely equal and deliberation isn't helping.
🎮 Game design & testing
Generate random values for procedural content, test data, NPC behaviour, or seeding game states without a dedicated RNG library.
🏫 Classroom activities
Pick random students for questions, assign random groups, generate random quiz values, or run probability demonstrations with live coin flips and dice rolls.
True random vs. pseudo-random — does it matter?

Most programming languages include a built-in random function — JavaScript's Math.random(), Python's random.random() — but these are pseudo-random number generators (PRNGs). They use a deterministic algorithm starting from a seed value. Given the same seed, they always produce the same sequence of numbers. They're fast and fine for games and simulations, but not suitable for security-sensitive uses.

This tool uses crypto.getRandomValues() — the Web Cryptography API — which gathers entropy from hardware events (mouse movements, keystrokes, hardware interrupts) that are physically unpredictable. The result is cryptographically secure randomness, the same standard used for generating cryptographic keys and passwords.

For everyday uses like dice rolls, raffle draws, and random sampling, the difference is academic — both feel random in practice. But for anything where predictability would be a problem (passwords, tokens, security challenges), cryptographically secure randomness is essential.

Frequently asked questions
You might also need
About this tool

All random values are generated using crypto.getRandomValues() — the Web Cryptography API built into all modern browsers. This produces cryptographically secure randomness, not pseudo-random values. The list picker uses a Fisher-Yates shuffle seeded with cryptographic entropy for unbiased random selection. Nothing is sent to any server.