Dice Roller
Roll dice with cryptographically secure randomness, powered by the Web Crypto API.
Result
Roll History
How it works
This dice roller uses the Web Crypto API (crypto.getRandomValues) for cryptographically secure randomness on every roll. Choose the number of dice and sides, or pick a preset like d4, d6, d8, d10, d12, d20, or d100. Each die is rolled independently using cryptographic randomness.
Everything runs locally in your browser. No data is sent to a server, no rolls are stored, and there is no tracking of any kind.
Frequently asked questions
How many dice and sides can I use?
You can roll from 1 to 20 dice, each with 2 to 100 sides. Values outside those limits are clamped when you roll, so entering 0 sides becomes 2 and 500 dice becomes 20.
Are the results actually fair, or biased toward some numbers?
Each die uses crypto.getRandomValues with rejection sampling, which discards the small leftover range that would otherwise cause modulo bias. That means every face has an exactly equal chance, unlike a plain remainder of a random 32-bit value.
Can I roll mixed dice like 1d20 plus 2d6 at once?
Not in a single roll. Every die in one roll shares the same number of sides, so combine mixed dice by rolling each set separately and adding the totals from the history.
Is my roll history saved between visits?
No. The history shows only the last 10 rolls and lives in memory, so it clears when you reload or close the tab. Nothing is written to storage or sent anywhere.
More tools from Clean.tools
Use Clean.tools from your AI agent
Clean.tools also runs an MCP server — read-only utility tools your AI agent can call directly. No key, no signup: requests are processed in memory and request contents are never stored.
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpEvery tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →