I often have to generate random Unicode so I created this simple online utility that does it for me. It lets you generate however many random Unicode glyphs you need from any code point range. It works in the browser and is powered by alien technology from the future.

Random Unicode Generator Options

Range, Count, Separator
Allow the same code point to be randomly picked multiple times.
Code Points
If you select a code point format here, then it will be appended after (or before) each Unicode glyph.
Use a full 4-digit hex format.
Use uppercase hex format.
Glyph and Codept Position
Choose where to place the code point value and the random Unicode glyph.

Random Unicode Generator Examples (click to try!)

Random Unicode Glyphs
In this example, we generate random Unicode characters from the range U+2100 to U+218B. The given range contains 80 glyphs from the Letterlike Symbols block (code positions U+2100 - U+214F) and 60 glyphs from the Number Forms block (code positions U+2150 - U+218B). We generate 200 random characters from this range, allowing the same character to be picked multiple times.
ℶⅹ⅂Ⅎℑ⅟℘ⅴ℈ⅶⅬℍ⅊ℼⅴⅇ℈№ℿⅣℐ⅊℧℅⅖ⅿℾⅼⅵⅭℤ⅍ℓⅉⅣↃℷℝ℟Kℨⅳ⅞℔℻ⅅⅶ⅐ℤℽ℄ⅣⅭⅾ⅀ℭ⅌℆ℸ℟Ⅳ⅊ⅽℱⅣℶℋⅥ℅⅔ℇⅫↀⅇ⅑⅛ⅅ⅙ℂↇℬⅸℜ℻ℏ℀℀℟℣K⅍Ⅷ⅕⅂Ⅿℓ℣⅐ⅹ⅚Ⅎ℁Ⅻℾⅎ↊Ⅱ⅁⅂℟↋ℤⅺℛⅰⅼⅮℨⅤ№ⅇ℗⅕ℝ⅗ℴℌↂ⅍⅍ℕℨⅵℬ⅓ⅅ℠ⅲⅫ℠⅐ℽℋ⅙℉℣ℬ⅟℆ℵⅶℬ℻℘ⅲⅪ⅖KⅣ⅄⅓Ⅎ⅁ↁ⅊ℚↂ⅙ↆℏ℀ℳ⅏ℽⅼℵ⅝⅓ℑ⅔⅓ⅲ℁ⅸℤ⅜⅄ↁℶℙ℺ⅶ⅄ↇⅅↃℶ℩⅏ℭ
Unicode range to generate.
Unicode range to skip.
Separator of random glyphs.
Number of random glyphs.
Allow Repeating
Padded Code Points
Uppercase Code Points
Multiple Unicode Ranges
This example combines multiple code point ranges for the generator. The first range is the small Latin letters a-z (code points 61-7a) and the second and third ranges are multicolored square letters 🅰🅱🅿 (code points 1f170-1f171 and 1f17f). It also excludes characters 'a' (61), 'b' (62), and 'p' (70) from this range and the final set of symbols is a modified English alphabet with exactly 26 letters but 'a', 'b', and 'p' are multi-colored. It randomly picks symbols from the range 26 times covering all letters without repetition. In the output, it adds padded code points in hex format "0xXXXX" to each letter and prints them in the order "Symbol: CodePoint".
e: 0x0065 🅱: 0x1f171 i: 0x0069 k: 0x006b 🅰: 0x1f170 q: 0x0071 n: 0x006e g: 0x0067 o: 0x006f s: 0x0073 r: 0x0072 u: 0x0075 x: 0x0078 🅿: 0x1f17f t: 0x0074 j: 0x006a w: 0x0077 c: 0x0063 d: 0x0064 y: 0x0079 z: 0x007a l: 0x006c h: 0x0068 v: 0x0076 m: 0x006d f: 0x0066
Unicode range to generate.
Unicode range to skip.
Number of random glyphs.
Separator of random glyphs.
Allow Repeating
Padded Code Points
Uppercase Code Points
Custom Code Points
In this example, we're working with emoji from the range 0x1f32d - 0x1f373 but we exclude the subrange 0x1f330 - 0x1f344 that contains trees and plants from it. The remaining symbols are all food emojis. We shuffle them in random order and select 10 emojis at a time without repetitions. We also show the uppercase hexadecimal code position of each emoji as the JavaScript Unicode escape code "\u{XXXX}", and we use a custom output format "%c - %s;" that stands for "CodePoint – Symbol;".
\u{1F368} – 🍨;
\u{1F36D} – 🍭;
\u{1F345} – 🍅;
\u{1F35C} – 🍜;
\u{1F364} – 🍤;
\u{1F34F} – 🍏;
\u{1F32E} – 🌮;
\u{1F367} – 🍧;
\u{1F352} – 🍒;
\u{1F36E} – 🍮;
Unicode range to generate.
Unicode range to skip.
Number of random glyphs.
Separator of random glyphs.
Allow Repeating
Padded Code Points
Uppercase Code Points
If you selected "Custom", then enter the position format. (Value %c is the code point and value %s is the Unicode symbol.)

How Does This Random Unicode Generator Work?

This random Unicode character generator works entirely in your browser and is written in JavaScript. To generate random glyphs, the program first parses two code point ranges. The first range specifies code points (in U+XXXX format, where XXXX is a hex value) of all symbols that can possibly be generated. The second range specifies code points that should be excluded from the first range. Then it calculates a single array toGenerate that contains all code points of the first range that are not in the second range (this value is the set difference range1-range2). To do it, it converts the code points of both ranges from the hexadecimal base to decimal base by calling the parseInt(hexCode, 16) function and then runs the setDiff(range1, range2) function. If the option "Allow Repeated Code Points" is disabled, the program first shuffle()s the toGenerate array and extracts count code points from it by running a for loop from 0 to min(count, toGenerate.length)-1. If repetitions are allowed, then it starts a for loop and uses the pickRandomArrElement(toGenerate) function to extract count code points from the toGenerate array. Each extracted code position is put in the codePoint variable and it's then converted into a Unicode character thru the fromCodePoint(decimal) function from the String object. Additionally, if the option to show code point values is selected, then the generation algorithm also adds the hexadecimal code point value in the correct format before or after the character. The program push()es each generated symbol onto an array called randomUnicode and when the for loop finishes, all random symbols are joined in a single string with the specified separator between them by the function randomUnicode.join(separator).

Created by Browserling

This random unicode generator was created by me and my team at Browserling. Behind the scenes, it's actually powered by our programmer tools that are used by millions of people every month. Browserling itself is an online cross-browser testing service powered by alien technology. Check it out!

Secret message: If you love my tools, then I love you, too! Use coupon code TOOLLING to get a discount at my company.