?

Click the number to generate a new one

nums
Click "Generate list" to create multiple numbers.

About the Random Number Generator

This generator uses the browser's crypto.getRandomValues() API to produce cryptographically secure random numbers — the same quality of randomness used in security applications. Unlike Math.random(), which uses a pseudo-random algorithm seeded by the system clock, crypto.getRandomValues() draws from the operating system's entropy pool, making each result genuinely unpredictable.

Common uses for random number generation

Pseudo-random vs cryptographically random

Most programming language default random functions are pseudo-random — deterministic sequences that appear random but are generated from a seed. For security purposes (tokens, passwords, OTPs), always use a CSPRNG: secrets.randbelow() in Python, or crypto.getRandomValues() in JavaScript.

Randomness in statistics and simulation

Random number generators are the foundation of Monte Carlo simulation, statistical sampling, and probabilistic modelling. In finance, Monte Carlo methods simulate thousands of portfolio paths to estimate risk. In medicine, randomised controlled trials use random allocation to prevent bias. Simulation games and procedural generation use seeded pseudo-random generators to create reproducible "random" worlds.

Frequently Asked Questions

How do I generate a random number between 1 and 10?
Enter 1 as the minimum and 10 as the maximum, then click Generate. Each result is independently random with equal probability for each value — the same as rolling a 10-sided die.
Is this generator truly random?
It uses the browser's crypto.getRandomValues() API, which draws from the operating system's hardware entropy pool. This is cryptographically secure randomness, not a pseudo-random sequence. Each number is generated independently with equal probability.
What is the difference between random and pseudo-random?
Pseudo-random generators produce deterministic sequences from an initial seed — given the same seed they produce identical results. True random generators use physical processes (hardware events, timing noise) that cannot be reproduced. For most everyday uses, pseudo-random is fine; for security applications, use cryptographic randomness.
Can I use this to pick lottery numbers?
Yes. Set the range to match your lottery format and generate numbers. All combinations have equal probability in a fair lottery. There is no strategy for choosing winning numbers — past results have no effect on future draws.
How do I generate a random number in code?
Python: import random; random.randint(1, 100). JavaScript: Math.floor(Math.random() * 100) + 1. For cryptographically secure: Python: import secrets; secrets.randbelow(100) + 1. JavaScript: use Uint32Array with crypto.getRandomValues().
Related tools
Ad