# Random Generator > Random numbers, dice, coins, list picks, shuffles, fair teams, dates, strings and UUIDs. Generates random whole or decimal numbers (optionally unique), dice rolls such as 3d6+2, coin flips, picks from a list, shuffles, balanced teams (by optional skill), random dates, strings and UUID v4/v7. Uses cryptographic randomness by default; with a seed the output is reproducible so others can verify a draw. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://randomgenerator.usefulweb.site/ (interactive tool at https://randomgenerator.usefulweb.site/tool) - JSON API: POST https://randomgenerator.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://randomgenerator.usefulweb.site/api/v1/tool) - OpenAPI: https://randomgenerator.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://randomgenerator.usefulweb.site/mcp - tool `random_generator` ## Inputs - mode (select): Generate - count (integer): How many - Numbers, rolls, flips, picks, dates, strings or UUIDs. - min (number): Minimum - max (number): Maximum - unique (boolean): No repeats (numbers and picks) - decimals (integer): Decimal places - dice (text): Dice notation - NdS±M, e.g. 2d20, 4d6+2, d100. - items (list): List (one per line; "name, skill" for teams) - teams (integer): Number of teams - dateFrom (date): Earliest date - dateTo (date): Latest date - length (integer): String length - charset (select): Characters - seed (text): Seed (optional, for reproducible results) - Empty = cryptographic randomness, different every time. With a seed, the same settings always give the same result — never use seeded output for passwords or keys. - uuidTime (datetime): UUID v7 timestamp (optional) - Default: now (UTC). Set it together with a seed for reproducible v7 UUIDs. ## Method - Without a seed, bytes come from the server's cryptographically secure generator (Node.js crypto.randomBytes); nothing is stored. With a seed, bytes come from SHA-256 in counter mode over the seed, so anyone can reproduce the draw with the same seed and settings. - Whole numbers in a range use rejection sampling (no modulo bias). Decimals use 53 random bits scaled into [min, max) and rounded to the chosen places. Unique numbers use a partial Fisher–Yates shuffle or Floyd's algorithm for huge ranges. - Shuffles and picks use Fisher–Yates. Teams: without skills, a random round-robin; with skills, a snake draft over a random order followed by swaps that shrink the gap between the strongest and weakest team. - UUID v4 has 122 random bits; UUID v7 has a 48-bit Unix millisecond timestamp and 74 random bits (RFC 9562). ## Limits - Seeded output is predictable by design. For passwords or keys, leave the seed empty (or use a dedicated password generator on your own device).