Random Lenny Faces Generator
Generate random Lenny faces and kaomoji instantly. Copy unique text emoticons with one click. 500+ component combinations for messaging and social media.
About
Unicode text faces (commonly called Lenny faces or kaomoji) are constructed by combining characters from multiple Unicode blocks: fullwidth forms (U+FF00 - FF60), CJK symbols, combining diacritical marks, and miscellaneous technical characters. A single face follows the structural pattern F = La + Le + El + M + Er + Re + Ra, where each variable maps to a character pool. The total combinatorial space exceeds 500,000 unique permutations from the included component library. Incorrect character pairing can produce broken rendering on certain platforms - Windows, macOS, iOS, and Android each support different Unicode ranges. This generator only uses characters verified across major operating systems.
Manual face construction is error-prone: a misplaced combining character shifts the entire face, and some mouth characters have zero-width properties that collapse adjacent components. The generator handles directionality (LTR vs RTL characters), avoids known combining-mark conflicts, and validates structural balance so left and right delimiters always match. Faces are grouped by mood category for targeted use in messaging, forums, or social media bios.
Formulas
Each Lenny face is assembled from a structural template with 7 positional slots. The total number of unique faces N for a given mood category is computed as:
Where La = left arm pool, Le = left ear/bracket, E = eyes pool (shared for symmetry), M = mouth pool, Re = right ear/bracket, Ra = right arm pool. For asymmetric faces the left eye El and right eye Er are drawn independently, squaring the eye contribution.
Random selection uses the Fisher-Yates algorithm to guarantee uniform distribution with time complexity O(n). Deduplication is enforced via string hashing into a Set structure, ensuring no repeated faces in a single batch even when the requested count k approaches the pool size. If k ≥ N, the generator caps output at N and notifies the user.
Reference Data
| Category | Example Face | Mood / Use | Key Unicode Blocks | Component Count |
|---|---|---|---|---|
| Classic | ( ͡° ͜ʖ ͡°) | Suggestive / Playful | Combining Diacriticals | 12 |
| Happy | (◕‿◕) | Joy / Greeting | Geometric Shapes | 18 |
| Sad | (╥﹏╥) | Crying / Sympathy | Box Drawing, CJK | 14 |
| Angry | (╬ Ò﹏Ó) | Frustration / Rage | Latin Extended | 11 |
| Confused | (⊙_⊙)? | Surprise / Disbelief | Misc Technical | 10 |
| Shrug | ¯\_(ツ)_/¯ | Indifference | Katakana, Latin | 6 |
| Love | (♥‿♥) | Affection / Adoration | Misc Symbols | 13 |
| Cool | (⌐■_■) | Confident / Chill | Geometric, Misc | 9 |
| Scared | (ノಠ益ಠ)ノ | Fear / Panic | Kannada, CJK | 10 |
| Bear/Animal | ʕ•ᴥ•ʔ | Cute / Kawaii | Phonetic Extensions | 8 |
| Table Flip | (╯°□°)╯︵ ┻━┻ | Extreme Anger | Box Drawing, CJK | 7 |
| Magic | (ノ◕ヮ◕)ノ*:・゚✧ | Excitement / Sparkle | Katakana, Dingbats | 15 |
| Disapproval | ಠ_ಠ | Judgment / Stare | Kannada | 5 |
| Musical | ♪(´ε` ) | Singing / Whistling | Misc Symbols, Latin | 9 |
| Fighting | (ง'̀-'́)ง | Combat / Challenge | Thai, Combining | 8 |