tomai
Log in
Free · Everyday Tools

Random Number Generator

Generate random numbers, roll dice, flip coins, pick from lists, and run lottery draws.

Recent results

No history yet — generate something to see it here.

Math.random vs crypto.getRandomValues

  • Simulations and games only need uniformity — a seeded PRNG is fine and reproducible.
  • Anything an adversary could predict (draws, keys, tokens) must come from the crypto source; security mode here uses it.
  • Duplicates are allowed unless you ask otherwise: true randomness re-draws; sampling without replacement is a separate mode.

Two kinds of randomness for two kinds of jobs

Crypto-grade randomness

Numbers come from the browser's cryptographic random API rather than a clock-seeded generator, the same class of source used by security functions.

🔒

Five modes, one page

Range, dice, coin, list picker, and lottery sit side by side, with d4 to d100 dice, coin flips, and winners drawn from a typed list, all sharing one history.

🎯

Controlled draws

Up to 1,000 numbers per draw, a toggle for whether duplicates are allowed, and sortable results make raffles and sampling reproducible instead of merely random.

Frequently asked questions

Is this random number generator truly random?

Uses crypto.getRandomValues() for cryptographically secure random numbers — far better than Math.random().

How does the dice roller work?

Select RPG dice (D4–D100) and count. Each die gets independent random roll. D6 shows ⚀–⚅ Unicode dice faces.

Can I pick multiple winners without duplicates?

Yes — list picker and lottery modes use Fisher-Yates shuffle, no duplicates. Every participant has equal chance at each position.

Is my data saved anywhere?

No — all generation happens in your browser. Recent history is in sessionStorage and disappears when you close the tab. Nothing is sent to any server.

Related tools

What Is a Random Number Generator?

A random number generator produces values that follow no predictable pattern. This one draws its randomness from the browser’s cryptographic random API, the same family of generator used for security purposes, rather than from the easily-patterned clock-based functions. Alongside plain numbers in any range, it rolls dice with different side counts, flips coins, picks items out of a list you type in, and runs lottery-style draws that return winners in a shuffled order. Raffle organizers, game-night hosts, teachers doing classroom sampling, and anyone who wants to remove human bias from a choice will find a place for it. Everything happens in the tab you already have open, with nothing to install and no account to create.

What this tool can do

  • 🎲 Range mode: numbers between any minimum and maximum, with duplicates allowed or forced unique, up to 1,000 at once and optionally sorted.
  • 🧮 Dice roller: four, six, eight, ten, twelve, twenty, or hundred-sided dice, several at a time, with the total summed.
  • 🪙 Coin flip: heads or tails with an even 50/50 chance.
  • 📋 List picker: type your own names or options and draw one or several at random.
  • 🏆 Lottery draw: shuffle the entrants and announce winners in drawing order.
  • 🕘 A session history of your recent draws, kept only in the current tab.

When would you use it

  • 🎁 Drawing a giveaway winner in front of an audience, with the fairness visible.
  • 🎲 Choosing who starts, or rolling for a random event, during a game night.
  • 📊 Picking a random sample of students for a classroom survey.
  • ⚖️ Settling a coin-flip decision when two options feel equally good.

Randomness is produced locally in your browser; no numbers, names, or results leave your device, and the history lives only in the current tab’s session storage, disappearing when the tab closes. One expectation to set: random means random — a repeat of an earlier result is normal, not a glitch.

Related tools