Pick one or many random integers between any two values, with or without duplicates. Powered by your browser's secure cryptographic randomness.
All generation happens in your browser. Nothing is sent anywhere.
It uses your browser's built-in crypto.getRandomValues, a cryptographically secure source of randomness. To keep every integer in the range equally likely, it uses rejection sampling: it discards any raw values that fall in the leftover slice that would otherwise bias the result.
With duplicates allowed, each pick is independent so the same number can appear more than once, like rolling a die repeatedly. With duplicates turned off, every result is unique, like drawing numbered balls without replacement, so the count cannot exceed how many numbers are in the range.
They are cryptographically secure pseudo-random numbers from the Web Crypto API, which is suitable for raffles, sampling, and games. Generation happens entirely in your browser and nothing is sent to a server.