Skip to content
TextArray
100% local

ULID generator

Generate sortable ULID identifiers, one per line, straight in your browser.

Output

ULID generator

Generate ULIDs — universally unique, lexicographically sortable identifiers — one per line, from one up to a thousand at a time. A ULID is 26 characters of Crockford base32: the first 10 encode a 48-bit millisecond timestamp, the remaining 16 carry 80 bits of randomness. The alphabet deliberately skips I, L, O and U, so an id read over the phone or retyped from paper doesn't get mangled.

The timestamp prefix is what sets ULIDs apart from UUIDs. Sort them alphabetically and they come out in creation order, which keeps database indexes compact and range queries cheap — a random UUID v4 scatters inserts across the whole index instead. Within a single batch this generator uses the monotonic strategy: ids created in the same millisecond increment the random part instead of redrawing it, so even a burst of a thousand sorts exactly in generation order.

Three options shape the output. "Count" produces 1 to 1000 ids per run. "Case" switches between the canonical uppercase form and lowercase, which some URL and database conventions prefer — ULIDs are case-insensitive, so both decode identically. "Show timestamp" appends the creation moment decoded from each id as an ISO 8601 date, handy for checking what a stray ULID found in a log actually says.

Everything runs locally in your browser. The randomness comes from crypto.getRandomValues, the platform's cryptographically secure source; nothing is uploaded, no identifier is logged, and the tool keeps working offline once the page has loaded.

FAQ

Are the ULIDs sent anywhere?
No. They are generated in your browser with crypto.getRandomValues and never leave your device.
What is a ULID?
A 26-character identifier in Crockford base32: a 48-bit millisecond timestamp followed by 80 random bits. It is as unique as a UUID but sorts by creation time.
When should I pick a ULID over a UUID?
When ids end up in a sorted index or need ordering by creation — ULIDs keep database inserts sequential. Pick a random UUID v4 when the creation time must not be readable from the id.
Does a ULID reveal when it was created?
Yes — the first 10 characters encode the creation time to the millisecond. Turn on "Show timestamp" to see it; if that leak matters, use a UUID instead.
Can two ULIDs collide?
Practically no. Each millisecond carries 80 fresh random bits, and within one batch the monotonic increment guarantees every id is distinct.