Is this truly random?
Yes — the generator uses the Web Crypto API (crypto.getRandomValues()), which provides cryptographically secure pseudorandom numbers. Unlike Math.random(), which relies on a deterministic algorithm seeded from system entropy at startup, crypto.getRandomValues() draws from the OS-level entropy pool on every call, making results genuinely unpredictable. This matters for security-sensitive applications like picking lottery winners, generating one-time tokens, or any context where predictability would be a problem.
What is the maximum range?
You can set any integer range — there is no hard maximum built into the tool. In practice, JavaScript safely handles integers up to 2^53 − 1 (9,007,199,254,740,991). For unique number generation, the range (max − min + 1) must be at least as large as the count you want to generate. For example, if you want 10 unique numbers, the range must span at least 10 values — such as 1 to 10 or 50 to 59.
Can I generate decimal numbers?
Yes — set decimals to 1–3 to generate floating-point numbers in the current UI. The result is rounded to the specified number of decimal places using standard half-up rounding. For example, setting min to 0, max to 1, and decimals to 2 generates values like 0.38 or 0.91 — useful for probability simulations, percentage sampling, or generating test data with realistic precision. Decimal mode still uses the Web Crypto API, so results are cryptographically random at the same level as integer mode.
How many decimal places can I use?
You can choose 0 to 3 decimal places in the current UI. Zero gives you whole numbers, while 1–3 decimal places are useful when you want fractional values for estimates, lightweight simulations, or test data. The generator rounds each value to the selected precision, so 4, 4.2, 4.23, and 4.234 are all valid outputs depending on the setting you choose.
What does Unique mean?
When the Unique option is enabled, no number appears more than once in the batch output. This is the statistical equivalent of drawing numbers without replacement from a physical pool — like pulling raffle tickets from a hat without putting them back. Under the hood, the tool generates a number and discards it if already drawn, repeating until the batch is complete. Because of this, Unique mode requires that the range size (max − min + 1) is equal to or greater than the requested count.
Can I use this for a lottery draw or raffle?
Yes — this is one of the most common uses. Set your min to 1 and max to the highest ticket number (e.g., 100 for a 100-person raffle), then generate 1 unique number to pick the winner. For multi-winner draws, increase the count to 3 or 5 and enable Unique so the same number cannot win twice. Because the generator uses the Web Crypto API rather than Math.random(), the results are cryptographically unpredictable — suitable for fair draws.
Can I use this for statistics or simulations?
Yes. For basic Monte Carlo simulations, generate a large batch of random numbers and apply your formula or model to each result. For random sampling from a dataset, generate unique random numbers in the range 1–N (where N is your dataset size) to select which rows or items to include — the Unique option ensures no item is sampled twice. For simple A/B split assignment, generate a random number between 1 and 100 and route values ≤50 to Group A and >50 to Group B. The Web Crypto API ensures results are unpredictable, avoiding the bias that can appear with low-entropy pseudorandom generators like Math.random().
What is the difference between a random number generator and a dice roller?
A dice roller is a specific random number generator pre-configured to match standard die faces — a six-sided die rolls 1–6, a twenty-sided die rolls 1–20. This random number generator is more general: you set any min and max, so you can replicate any die (set 1–6 for a d6, 1–20 for a d20) or create arbitrary ranges a physical die cannot represent, like 1–37 for roulette or 0–999 for a three-digit combination. Batch mode also lets you roll multiple dice simultaneously and optionally sort the results.