using System;using System.Text;
public static void Main()
for (var i = 0; i <= 100; i++)
Console.WriteLine(EmoGuidShort(i));
public static string EmoGuidShort(int emojiPrefixCoint = 0)
emojiPrefixCoint = emojiPrefixCoint % 14;
var emojis = "๐ค ๐๐คฒ๐๐" +
"๐ฅณ๐ค๐คก๐๐ถ๐๐๐๐๐คจ๐ค๐คซ๐คญ๐คฅ๐ณ๐๐๐ ๐ก๐คฌ๐๐๐๐ฌ๐ฅบ๐ฃ๐๐ซ๐ฉ๐ฅฑ" +
"๐ค๐จ๐ฎ๐ฑ๐จ๐ฐ๐ฏ๐ฆ๐ง๐ข๐ฅ๐ช๐คค๐๐ญ๐คฉ๐ต๐ฅด๐ฒ๐คฏ๐ค๐ท๐ค๐ค๐คฎ๐คข๐คง" +
"๐ฅต๐ฅถโข๐ด๐ฟ๐น๐บ๐ฉ๐ฝ๐๐๐๐๐๐
๐๐คฃ๐๐๐๐๐๐๐๐๐ฅฐ" +
"๐๐๐ฟ๐พ๐ป๐๐๐๐๐คช๐๐๐๐ค๐๐ค๐ง" +
"๐ญ๐น๐ฐ๐ป๐งธ๐ผ๐จ๐ฏ๐ฆ๐ฎ๐ท๐ค๐ค๐ค๐ค๐ค๐๐ค๐๐๐๐๐ค๐๐๐๐ค๐ช๐ฆพ๐๐คณ๐
๐ฆต๐ฆฟ๐ฆถ๐๐ฆท๐
๐๐ฆป๐" +
"๐ค๐๐๐๐๐๐๐ถ๐ฑ";
foreach (byte b in Guid.NewGuid().ToByteArray())
var data = BitConverter.GetBytes(i - DateTime.Now.Ticks * DateTime.Now.Ticks * DateTime.Now.Ticks * DateTime.Now.Ticks);
string ValidChars = "QAZ2WSX3" + "EDC4RFV5" + "TGB6YHN7" + "UJM8K9LP";
var sb = new StringBuilder();
while (currentByte < data.Length)
index = (byte)(data[currentByte++] >> (hi - 5));
if (currentByte != data.Length)
index = (byte)(((byte)(data[currentByte] << (16 - hi)) >> 3) | index);
index = (byte)(data[currentByte++] >> 3);
index = (byte)((byte)(data[currentByte] << (8 - hi)) >> 3);
sb.Append(ValidChars[index]);
for (var f = 0; f < emojiPrefixCoint; f++)
int bPointer = Convert.ToInt32(sb[f]) % new System.Globalization.StringInfo(emojis).LengthInTextElements;
var textElementEnumerator = System.Globalization.StringInfo.GetTextElementEnumerator(emojis);
while (textElementEnumerator.MoveNext())
if (bPointer == whilteCount)
prefixSwap += textElementEnumerator.Current.ToString();
return (prefixSwap + (sb.ToString().ToLower().Substring(emojiPrefixCoint)));