Generate truly random numbers using the Web Crypto API. Set your own range, generate multiple numbers at once, and optionally exclude duplicates. Everything runs in your browser.
Random number generation serves countless purposes — from settling disputes and running simulations to creating test data and picking lottery numbers. This tool generates cryptographically random numbers using your browser's built-in crypto API (window.crypto.getRandomValues), which is far more random than Math.random(). You can specify ranges, quantity, and whether you need integers or decimals. Common uses include dice rolls for tabletop games, random sampling for statistics, generating PINs, selecting raffle winners, and creating randomized test datasets. All generation happens in your browser — no numbers are sent to any server.
This tool uses your browser's cryptographic random number generator (crypto.getRandomValues), which gathers entropy from hardware sources. It's suitable for most purposes including security applications, unlike Math.random() which is pseudorandom.
Yes — enable the 'unique' option to ensure no duplicates. This is useful for lottery draws, random sampling, and creating shuffled sequences. Note: the range must be large enough to accommodate the quantity requested.
True random uses physical entropy (hardware noise, timing). Pseudorandom uses mathematical algorithms that produce deterministic sequences from a seed. Browser crypto APIs use true randomness; Math.random() is pseudorandom.
While the numbers are cryptographically random, official lotteries and gambling require certified hardware random number generators with auditable processes. This tool is suitable for informal draws and personal use.
Set your minimum and maximum values. The formula is: Math.floor(Math.random() * (max - min + 1)) + min for integers. This tool handles the math automatically.