ID generator
Fresh identifiers, minted in your browser. UUID v4 and v7, ULID, NanoID, plain hex, base32, or a pair of words. Nothing is sent, nothing is stored, and no two are alike.
UUID v7 1 ID 128 BITS
Every ID from the last run, in the order they were made. Click one to copy it.
64 symbols, 6 bits each.
Which one to use
UUID v4 is 122 random bits dressed as 32 hex digits. The 4 in the third group is the version and the first digit of the fourth group is the variant, so 6 of the 128 bits are fixed. Use it when you only need something unique and nobody will ever sort by it.
UUID v7 is the newer layout from RFC 9562: the first 48 bits are the Unix time in milliseconds, then the version, then 74 random bits. Because the time comes first, IDs made later sort after IDs made earlier, as text and as bytes. Databases love that. A B-tree index on a v4 column takes every insert at a random place, splits pages, and drags cold pages into memory; a v7 column appends at the right-hand end like an autoincrement, keeps the index tight, and still tells you roughly when a row was created. This page keeps v7 IDs made in the same millisecond in order too, by counting up the 12 bits after the version, which the RFC allows.
ULID is the same idea from 2016: 48 bits of time and 80 random bits, written as 26 characters of Crockford base32, which drops I, L, O and U so nothing is mistaken for a 1 or a 0. Within one millisecond the random part counts up by one, so a burst stays sorted.
NanoID is 21 characters from a 64-symbol URL-safe alphabet by default, which is 126 bits in fewer characters than a UUID. Change the alphabet and the length and the bits shown stay honest: length times log2 of the number of distinct symbols. Repeated symbols in the alphabet are counted once.
Hex and base32 are plain random bytes with nothing fixed. Hex is 4 bits a character; base32 is 5 bits a character over A to Z and 2 to 7.
Words are an adjective, a noun and a number, from two lists of two hundred plain words that ship with this page. With a four-digit number that is about 28 bits, which is plenty for a room code or a build name and nowhere near enough for a secret. Use them where a person has to read the ID out loud.
Where the randomness comes from
Every random bit comes from crypto.getRandomValues, the same source your browser uses for encryption keys. Picking one symbol from an alphabet of 64 with a random byte is fine, but picking from an alphabet of 60 would favour the first four symbols, so this page throws away the rare values that would skew the draw and draws again. That is rejection sampling, and it means no modulo bias for any alphabet you type.
Nothing you generate is sent, logged or stored. The only thing this page records is that IDs were made, which kind, and how many.