Short answer: press Generate ULIDs for up to 100 sortable identifiers. Paste any ULID into the decode field to see when it was created and which part is randomness.
The two halves
The first ten characters are a 48-bit count of milliseconds since the Unix epoch — the same clock a Unix timestamp uses, just written in Base32. The last sixteen characters are 80 bits from the browser CSPRNG. That split is why01ARZ3NDEK… sorts before 01ARZ3NF1A…: the string comparison is comparing creation times.
When a ULID is the wrong choice
- When the ID must not reveal time. Anyone can decode the first half, which is a disclosure a UUID v4 avoids.
- When ordering inside one millisecond matters. The timestamp ties and the randomness decides; only the optional monotonic mode fixes that.
- When a standard requires UUID. A ULID is not a UUID and will fail a validator that expects the 8-4-4-4-12 form — the UUID generatorhas v4 and v7 for those fields.