All Tools

Random Unicode Generator: Characters from Any Block

Generate random Unicode characters from chosen blocks and planes, such as Greek, Cyrillic, CJK, emoji, arrows and box drawing. Only assigned, printable characters by default. Copy or download the result. Nothing is uploaded.

Separator

Skips unassigned, control, format and separator code points.

Blocks and planes

About the random Unicode generator

This page generates random Unicode characters from the blocks and planes you choose. Tick Greek, Cyrillic, Hebrew, Arabic, CJK ideographs, Hangul, emoji, arrows, box drawing, mathematical letters or whole planes, set how many characters you want, and the result appears at once. It is useful for testing how software copes with text outside ASCII: fonts, databases, form validation, string length limits and sorting. The characters are generated by code running on this page, so nothing is uploaded and nothing is sent to a server.

How to generate random Unicode

Steps

  1. Enter the number of Characters, from 1 to 100,000.
  2. Tick one or more Blocks and planes. The default mix is Greek and Coptic, Cyrillic, Arrows and Emoticons.
  3. Leave Printable characters only on to get visible characters, or turn it off to include controls, format characters and unassigned code points as well.
  4. Choose a Separator if you want the characters spaced, comma-separated or one per line, then press Copy or Download .txt.
  5. Press Generate again for a new set with the same settings.

What "printable" means here

A code point is skipped when it is unassigned (no character has been given that number yet), a control character such as U+0000 or a tab, a format character such as the zero-width space U+200B, a private-use code point, a surrogate, or a space or line separator. What remains are letters, marks, numbers, punctuation and symbols. Surrogates U+D800 to U+DFFF are never generated, even with the option off, because on their own they are not valid text in UTF-8 or UTF-16.

Choosing blocks

Even odds per character

Each character of the union of the ticked blocks is equally likely, so the blocks are weighted by how many printable characters they hold. CJK Unified Ideographs holds more than 20,000, Arrows 112, so a mix of both is almost all ideographs. Tick only small blocks for an even mix of symbols, or whole planes for the widest spread: plane 0 is the Basic Multilingual Plane, plane 1 holds historic scripts, emoji and mathematical letters, and plane 2 holds rarer CJK ideographs.

Emoji

The emoji blocks give single emoji code points. Flags, skin tones and family groups are sequences of several code points and are not generated as units.

Related tools

The full Unicode generator also makes random letters, numbers and text in a chosen script, lists code point ranges and shifts code points. To see the UTF-8 bytes of what you generated, use Text to Binary, or encode it with Base64.

Open-source credits

  • The generator is implemented in-house and uses no third-party library.
  • Block bounds follow the Unicode Standard's code charts (Blocks.txt), and whether a character is assigned and printable comes from the Unicode property escapes of the browser's JavaScript engine (ECMA-262).
  • Randomness comes from the Web Crypto API with rejection sampling, so no character is favoured by a modulo.

Other related tools