Randomizer
Random Number Generator
Free online randomization tools, generate random numbers, roll dice (D4–D100), flip coins, and shuffle lists. Perfect for games, raffles, D&D sessions, and decision-making. No sign-up, runs entirely in your browser.
How to Use
Random Number
- Set min/max range
- Choose how many numbers
- Toggle "no duplicates" or "sorted"
- Click Generate and copy results
Dice Roller
- Select die type (D4–D100)
- Set number of dice (up to 20)
- Click Roll for instant results
- See total and average for multiple dice
Coin Flip
- Choose Single or Batch mode
- Single: click coin to flip with animation
- Batch: set count, see heads/tails tally
- Great for probability experiments
List Randomizer
- Paste list (one item per line)
- Click Shuffle List
- Items reorder randomly
- Copy output or shuffle again
Common Uses
Games & D&D
Roll D20 for attacks, D6 for damage, or multiple dice at once. Works for D&D, Pathfinder, and any tabletop RPG.
Raffles & Giveaways
Generate winning ticket numbers, or paste a list of names and shuffle to pick a fair winner.
Decision Making
Flip a coin for yes/no decisions, or randomize a list of options and pick from the top.
Statistics & Probability
Batch coin flip lets you run probability experiments. Generate large random datasets for testing.
Pseudorandom vs. True Random Numbers
Every result here comes from JavaScript's Math.random(), a pseudorandom number generator (PRNG). A PRNG produces numbers using a deterministic algorithm seeded from the browser's internal state, so the sequence looks statistically random but is not derived from unpredictable physical noise. This is more than sufficient for dice rolls, coin flips, raffles, and shuffling a playlist.
It is not appropriate for cryptography, security tokens, or real-money gambling, where a cryptographically secure PRNG (crypto.getRandomValues) or a hardware-based true random number generator sourced from atmospheric noise or radioactive decay (such as random.org) is required instead. The practical difference: a PRNG's output could theoretically be predicted if an attacker knew the internal seed state, which never matters for a game night but matters a great deal for generating a password or encryption key.
How the Fisher-Yates Shuffle Works
The List Randomizer uses the Fisher-Yates (Knuth) shuffle: it walks the list from the last item to the first, and at each step swaps the current item with a randomly chosen item from the remaining unshuffled portion, including itself. This runs in linear time and, critically, gives every possible ordering of the list an equal probability of occurring.
This matters because a naive approach, such as assigning each item a random number and sorting by it, is not perfectly uniform and can subtly favor certain orderings depending on the sort algorithm's stability. Fisher-Yates avoids that bias entirely, which is why it is the standard algorithm used in shuffling implementations across most programming languages.
Dice Probability and Expected Values
For a single fair die with n sides, every face has an equal 1/n chance, and the expected (average) value across many rolls is (n+1)/2. A D6 averages 3.5, a D20 averages 10.5, and a D100 averages 50.5. Rolling multiple dice at once, as the tool's dice count option allows, changes the shape of the outcome: the sum of two D6 rolls is not evenly distributed like a single die but forms a triangular distribution peaking at 7, since there are more combinations that add up to 7 (1+6, 2+5, 3+4, and their reverses) than any other total.
This is useful for tabletop game design and probability practice: rolling several dice and summing the results narrows the range of likely outcomes toward the average, which is exactly why games use multiple smaller dice (2d6, 3d6) instead of one large die when they want more predictable, bell-shaped results rather than a flat, equally-likely spread.