Generate random numbers in any range, roll virtual dice, flip coins, and shuffle or pick from a list — free, instant, and secure.
Set a range and click Generate to get random numbers
Choose your dice and click Roll Dice
Choose how many times to flip and click Flip Coins
Paste a list of items to shuffle or pick winners from
This free random number generator is an all-in-one randomness tool covering four common needs: generating a random number between two numbers you choose, rolling virtual dice, flipping a coin, and shuffling or drawing names from a list. Used online as a random number generator, dice roller, coin flip simulator, and random list shuffler in one place, it's built for anyone who needs an unbiased outcome quickly — teachers picking students with a random name picker, streamers running giveaways with a giveaway winner picker, tabletop gamers who need a d20 roller or d6 dice roller without physical dice, or developers testing with random sample data from a random integer generator.
Each tool draws numbers using your browser's crypto.getRandomValues() API when available, which makes this a genuinely secure random number generator that produces cryptographically strong randomness rather than a predictable pseudo-random sequence — falling back to Math.random() only if the browser doesn't support it. The random number generator online maps random values onto your chosen min/max range to give you a random number between two numbers, and can enforce "no repeats" so every unique random number it returns is a number generator no repeats result. Roll a dice online with any standard die (d4 through d100) treating each face as equally likely, or use the coin toss online feature for a quick heads or tails call. List shuffling and "Pick N" use the Fisher–Yates algorithm — the same shuffle list online logic behind the random list shuffler, raffle picker, and RNG online used for drawing names — which guarantees every possible ordering has an equal chance of occurring.
The number generator, dice roller, and coin flip all share one range formula: result = Math.floor(random × (max − min + 1)) + min, where "random" is a fraction between 0 and 1 pulled from crypto.getRandomValues() (or Math.random() as the fallback). Here's exactly how each tool applies it:
Fair, unpredictable outcomes matter whenever a decision needs to be seen as unbiased — splitting chores with a random number picker, drawing raffle winners with a raffle picker, assigning teams, rolling virtual dice for a board game, settling a call with a coin flip, or generating test data that isn't accidentally patterned. Using a proper randomness source (rather than "just picking one") removes the appearance and reality of favoritism, which is exactly why a secure random number generator matters for raffles and giveaways with real prizes on the line.
This tool uses your browser's crypto.getRandomValues() API when available, producing cryptographically secure randomness suitable for raffles and giveaways. It automatically falls back to Math.random() on older browsers.
With "No duplicate numbers" checked, results are collected into a set until it reaches your requested count, guaranteeing every value is unique. The calculator warns you if your range is too small to supply enough unique numbers.
Each die roll is an independent, equally-likely outcome from 1 to the number of sides you choose — standard d4 through d100, or any custom side count. The total and average update instantly across all dice rolled together.
List shuffling and "Pick N" use the Fisher–Yates shuffle algorithm, which guarantees every possible ordering is equally likely — the same technique used in card-shuffling software and lottery draws.
From setting your range to reading your random numbers
Type the lowest number you want the random number generator to be able to produce into the Minimum field. Negative numbers are accepted, so a range like -50 to 50 works fine.
Type the highest number you want the generator to be able to produce into the Maximum field. It must be greater than or equal to the Minimum, or the calculator will flag the input.
Set "How Many Numbers?" to the quantity you need at once, optionally check "No duplicate numbers" for a unique set, and pick a Sort order — As Generated, Ascending, or Descending.
The random number generator draws each value from your browser's random source and maps it onto your chosen min/max range using the range formula described above.
Your generated numbers appear as chips in the Results panel, and the outcome is also logged to Recent Results at the bottom of the calculator for quick reference during the current session.
Two common scenarios: a raffle draw and a tabletop dice roll
You're running a small raffle and need 5 distinct winning numbers from a pool of 100 entries, sorted low to high so they're easy to read aloud.
Math.floor(random × 100) + 1 and adds each new, not-yet-seen result to a set until it holds 5 unique numbers.You need to roll three standard six-sided dice at once, a common check in tabletop games.
Explanation: Both examples use the identical underlying formula — a random fraction between 0 and 1 scaled to fit the chosen range — the Number Generator just applies it once per requested value (with a uniqueness check when "No duplicate numbers" is on), while the Dice Roller applies it once per die and adds the individual rolls together.
What the output from each tool means and how to read it
Number Generator chips: each chip is one independently generated value inside your Minimum–Maximum range. If "No duplicate numbers" is checked, no value repeats within that result set; if it's unchecked, the same number can legitimately appear more than once, just as it could with repeated physical draws. The Sort setting only changes the display order — it never changes which numbers were generated.
Dice Roller total and average: "Total" is the sum of every individual die shown in the roll row, and "Average" divides that total by the number of dice — useful for quickly comparing rolls across different dice counts.
Coin Flip tally: "Heads" and "Tails" count how many of your requested flips landed each way. Because every flip is independent, the split won't always be exactly even, especially over a small number of flips — that's expected, not a sign of a biased tool.
Shuffle List output: in "Shuffle All" mode, every item from your pasted list reappears exactly once in a new random order. In "Pick N Items" mode, only your requested count is shown, each drawn without replacement, so no name or item can be picked twice in the same draw.
Recent Results: the history panel keeps a running log of your last 15 outcomes across all four tools for the current page visit only — refreshing or leaving the page clears it, so copy down anything you need to keep.
Where a fast, unbiased random draw is genuinely useful
Draw one or more unique winning numbers or names for a raffle, giveaway, or contest.
Cold-call students fairly or assign presentation order without visible favoritism.
Generate a sorted set of unique numbers within your lottery's range as a starting point.
Roll virtual d4–d100 dice for board games and tabletop RPGs when physical dice aren't handy.
Pick random sample IDs or record numbers from a numbered population for a research study.
Shuffle a list of participants and split it into fair, randomly ordered groups or teams.
Assign test subjects or users to control/variant groups without a predictable pattern.
Produce quick sample integers for testing forms, scripts, or database seed data.
Generate individual random digits (0–9) as a starting point for a memorable PIN.
Paste a guest list into Shuffle List and pick N winners live during an event.
Settle a quick yes/no or two-option decision with the Coin Flip tool instead of a physical coin.
Pull a quick numeric seed value to kick off a simulation, game, or procedural generator.
Shuffle a participant list to help randomize who's paired with whom (paired manually afterward).
What this random number generator does well, and where it has boundaries
Typical ranges to plug into the Minimum/Maximum fields (or the matching tool) for popular scenarios
| Use Case | Recommended Range | Notes |
|---|---|---|
| Standard six-sided die | 1–6 | Use the Dice Roller's d6 preset for a physical-dice match |
| Twenty-sided die (tabletop RPG) | 1–20 | Use the Dice Roller's d20 preset |
| Percentage / probability roll | 1–100 | Common "roll under X%" mechanic in games and simulations |
| Coin flip | Heads or Tails | Use the dedicated Coin Flip tool rather than mapping 0/1 yourself |
| Small raffle or classroom draw | 1–30 (or class size) | Match the Maximum to your entrant or student count |
| Lottery-style pick (e.g. 6 from 49) | 1–49 | Check "No duplicate numbers," set Count to 6, sort Ascending |
| PIN digit | 0–9 | Generate one digit at a time, or several draws combined |
| Random team assignment | 1–(number of teams) | Map each result to a team number |
| Dice pool for board games | 1–6 per die | Use the Dice Roller's "Number of Dice" field to roll several at once |
Summary: This random number generator combines a custom-range number picker, a virtual dice roller, a coin flip simulator, and a random list shuffler in one free tool, using your browser's crypto.getRandomValues() API when available for genuinely unpredictable results. It's a solid everyday choice for raffles, games, sampling, and quick decisions — not a certified system for regulated gambling or security-critical secrets. Pair it with NeftCal's Random Name / Number Picker or Probability Calculator for related tasks.
Common questions about random numbers, dice, coins and list shuffling
Independent references on pseudorandom and true random number generation
Explore other randomness, security, and math tools