eRandomGenerator

<!-- Navigation -->
<nav>
    <div class="container">
        <ul>
            <li><a href="https://erandomgenerator.com">Home</a></li>
            <li><a href="https://erandomgenerator.com/tools">All Tools</a></li>
            <li><a href="https://erandomgenerator.com/categories">Categories</a></li>
            <li><a href="https://erandomgenerator.com/about">About</a></li>
            <li><a href="https://erandomgenerator.com/blog">Blog</a></li>
            <li><a href="https://erandomgenerator.com/contact">Contact</a></li>
        </ul>
    </div>
</nav>

<!-- Hero Section -->
<section class="hero">
    <div class="container">
        <h1>Random Emoji Generator Wheel</h1>
        <p>Create fun emoji combinations instantly with our interactive wheel spinner. Customize, save, and share your emoji creations with just a few clicks!</p>
        <a href="#tool" class="cta-button">Generate Emojis Now</a>
    </div>
</section>

<!-- Tool Interface -->
<section class="tool-interface" id="tool">
    <div class="container">
        <div class="tool-container">
            <!-- Controls Panel -->
            <div class="controls-panel">
                <h2>Customize Your Emojis</h2>

                <div class="control-group">
                    <label for="quantity">Number of Emojis: <span class="range-value" id="quantity-value">5</span></label>
                    <input type="range" id="quantity" min="1" max="20" value="5">
                </div>

                <div class="control-group">
                    <label for="format">Output Format:</label>
                    <select id="format">
                        <option value="emoji">Emoji Only</option>
                        <option value="colon">Colon Format (:smile:)</option>
                        <option value="html">HTML Entity</option>
                        <option value="unicode">Unicode Code</option>
                    </select>
                </div>

                <div class="control-group">
                    <label>Emoji Categories:</label>
                    <div class="checkbox-group">
                        <div class="checkbox-item">
                            <input type="checkbox" id="smileys" checked>
                            <label for="smileys">Smileys</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="animals" checked>
                            <label for="animals">Animals</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="food" checked>
                            <label for="food">Food</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="activities" checked>
                            <label for="activities">Activities</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="travel" checked>
                            <label for="travel">Travel</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="objects" checked>
                            <label for="objects">Objects</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="symbols" checked>
                            <label for="symbols">Symbols</label>
                        </div>
                        <div class="checkbox-item">
                            <input type="checkbox" id="flags" checked>
                            <label for="flags">Flags</label>
                        </div>
                    </div>
                </div>

                <div class="control-group">
                    <label for="animation">Animation Speed:</label>
                    <select id="animation">
                        <option value="fast">Fast</option>
                        <option value="medium" selected>Medium</option>
                        <option value="slow">Slow</option>
                    </select>
                </div>

                <button class="cta-button" id="generate-btn" style="width: 100%; margin-top: 10px;">Generate Emojis</button>
            </div>

            <!-- Wheel Container -->
            <div class="wheel-container">
                <div class="wheel-wrapper">
                    <div class="wheel-pointer"></div>
                    <div class="wheel" id="emoji-wheel"></div>
                </div>
                <button class="spin-button" id="spin-btn">Spin the Wheel</button>

                <!-- History Section -->
                <div class="history-section">
                    <h3>Recent Generations</h3>
                    <div class="history-list" id="history-list">
                        <!-- History items will be added here -->
                    </div>
                </div>
            </div>

            <!-- Results Container -->
            <div class="results-container">
                <h2>Generated Emojis</h2>
                <div class="emoji-results" id="emoji-results">
                    <!-- Generated emojis will appear here -->
                </div>

                <div class="action-buttons">
                    <button class="action-button" id="copy-btn">
                        <i class="fas fa-copy"></i> Copy
                    </button>
                    <button class="action-button" id="save-btn">
                        <i class="fas fa-save"></i> Save
                    </button>
                    <button class="action-button" id="share-btn">
                        <i class="fas fa-share-alt"></i> Share
                    </button>
                    <button class="action-button secondary" id="export-txt">
                        <i class="fas fa-file-alt"></i> TXT
                    </button>
                    <button class="action-button secondary" id="export-csv">
                        <i class="fas fa-file-csv"></i> CSV
                    </button>
                    <button class="action-button secondary" id="export-json">
                        <i class="fas fa-file-code"></i> JSON
                    </button>
                </div>

                <!-- Favorites Section -->
                <div class="history-section" style="margin-top: 30px;">
                    <h3>Saved Favorites</h3>
                    <div class="history-list" id="favorites-list">
                        <!-- Favorite items will be added here -->
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>

<!-- SEO Article -->
<section class="seo-article">
    <div class="container article-container">
        <h2>Random Emoji Generator: Create Fun and Unique Emoji Combinations</h2>

        <p>Emojis have become an integral part of our digital communication, adding emotion, personality, and context to our messages. Whether you're looking to spice up your social media posts, create engaging content, or simply have fun with digital expressions, our <strong>random emoji generator</strong> is the perfect tool for you. This innovative <strong>emoji wheel spinner</strong> allows you to generate random emoji combinations with just a click, offering endless possibilities for creative expression.</p>

        <p>Our <strong>emoji creator tool</strong> is designed with user experience in mind, providing a seamless interface that makes generating random emojis both fun and functional. Unlike other <strong>random emoji generators</strong> that simply display a list of emojis, our interactive wheel adds an element of excitement and surprise to the process. With the ability to customize categories, quantity, and output format, you have complete control over your <strong>emoji combinations</strong>.</p>

        <h3>The Benefits of Using a Random Emoji Generator</h3>

        <p>There are numerous advantages to using our <strong>emoji wheel spinner</strong> for your digital communication needs:</p>

        <ul>
            <li><strong>Creativity Enhancement:</strong> Break out of your emoji rut by discovering new and unexpected combinations that you might not have considered otherwise.</li>
            <li><strong>Time Efficiency:</strong> Quickly generate multiple emoji options without scrolling through endless lists, saving you valuable time.</li>
            <li><strong>Content Creation:</strong> Content creators, social media managers, and marketers can use our <strong>random emoji generator</strong> to add visual interest to posts and increase engagement.</li>
            <li><strong>Language Learning:</strong> Language learners can use emojis as visual aids to associate with vocabulary words or concepts.</li>
            <li><strong>Fun and Entertainment:</strong> Simply spinning the wheel can be an enjoyable activity, perfect for breaking the ice or starting conversations.</li>
        </ul>

        <h3>Practical Use Cases for Random Emoji Generation</h3>

        <p>Our <strong>emoji creator tool</strong> has a wide range of applications across various contexts:</p>

        <ul>
            <li><strong>Social Media Content:</strong> Enhance your posts, stories, and comments with unique emoji combinations that stand out in crowded feeds.</li>
            <li><strong>Marketing Campaigns:</strong> Create eye-catching promotional materials with emoji elements that resonate with your target audience.</li>
            <li><strong>Educational Materials:</strong> Teachers and educators can use emojis to make learning materials more engaging and memorable for students.</li>
            <li><strong>Team Building:</strong> Use the emoji wheel as a fun icebreaker activity in team meetings or virtual gatherings.</li>
            <li><strong>Personal Expression:</strong> Add personality to your messages, emails, and digital communications with carefully selected emoji combinations.</li>
        </ul>

        <h3>How to Use Our Random Emoji Generator Wheel</h3>

        <p>Using our <strong>emoji wheel spinner</strong> is simple and intuitive, even for first-time users. Follow these steps to create your own unique emoji combinations:</p>

        <ol>
            <li><strong>Customize Your Settings:</strong> Use the control panel to select the number of emojis you want to generate, choose your preferred output format, and select which emoji categories to include.</li>
            <li><strong>Spin the Wheel:</strong> Click the "Spin the Wheel" button to start the animation. The wheel will spin and gradually slow down before landing on a random emoji.</li>
            <li><strong>Generate Multiple Emojis:</strong> For multiple emojis, use the "Generate Emojis" button to create a set based on your preferences without spinning the wheel.</li>
            <li><strong>Copy, Save, or Share:</strong> Once you have your desired emojis, use the action buttons to copy them to your clipboard, save them to your favorites, or share them on social media.</li>
            <li><strong>Export Your Results:</strong> If you need your emojis in a specific format for further use, utilize our export options to download them as TXT, CSV, or JSON files.</li>
        </ol>

        <h3>Advanced Features for Power Users</h3>

        <p>Our <strong>random emoji generator</strong> includes several advanced features that set it apart from basic emoji tools:</p>

        <ul>
            <li><strong>Customizable Output Formats:</strong> Choose from emoji-only display, colon format for coding, HTML entities for web development, or Unicode codes for technical applications.</li>
            <li><strong>Category Filtering:</strong> Select specific emoji categories to focus on, such as smileys, animals, food, activities, travel, objects, symbols, or flags.</li>
            <li><strong>History Tracking:</strong> Keep track of your recent emoji generations with our built-in history feature, allowing you to revisit and reuse previous combinations.</li>
            <li><strong>Favorites System:</strong> Save your favorite emoji combinations for quick access later, perfect for emojis you use frequently or particularly enjoy.</li>
            <li><strong>Export Functionality:</strong> Export your generated emojis in multiple formats, making it easy to integrate them into various projects and workflows.</li>
        </ul>

        <p>Whether you're a casual user looking to add some fun to your messages or a professional seeking efficient ways to incorporate emojis into your work, our <strong>random emoji generator wheel</strong> provides the perfect balance of simplicity and functionality. With its intuitive interface, customizable options, and advanced features, it's the ultimate tool for all your emoji generation needs.</p>

        <p>Start exploring the world of emojis in a whole new way with our innovative <strong>emoji wheel spinner</strong>. Spin the wheel, discover new combinations, and let your creativity flow with endless possibilities at your fingertips!</p>
    </div>
</section>

<!-- Q&A Section -->
<section class="qa-section">
    <div class="container qa-container">
        <h2>Frequently Asked Questions</h2>

        <div class="qa-item">
            <div class="question">How does the Random Emoji Generator Wheel work?</div>
            <div class="answer">
                <p>Our Random Emoji Generator Wheel uses a sophisticated algorithm to randomly select emojis based on your chosen categories and preferences. When you spin the wheel, it applies physics-based animation to create a realistic spinning effect before gradually slowing down and landing on a random emoji. The "Generate Emojis" button creates multiple emojis at once without the spinning animation, perfect for when you need several emojis quickly.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">Can I save my favorite emoji combinations for later use?</div>
            <div class="answer">
                <p>Yes! Our tool includes a favorites feature that allows you to save your preferred emoji combinations. Simply click the "Save" button after generating emojis, and they'll be stored in your browser's local storage. This means your favorites will be available even after you close the browser, though they will only be accessible on the same device and browser where you saved them.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">What output formats are available for the generated emojis?</div>
            <div class="answer">
                <p>Our Random Emoji Generator offers four different output formats to suit various needs: Emoji Only (displays the actual emoji characters), Colon Format (shows emojis as :smile: which is useful for coding and markdown), HTML Entity (provides the HTML code for web development), and Unicode Code (displays the technical Unicode value of each emoji). You can easily switch between these formats using the dropdown menu in the control panel.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">Is there a limit to how many emojis I can generate at once?</div>
            <div class="answer">
                <p>You can generate between 1 and 20 emojis at a single time using our tool. This range was carefully chosen to balance usability with performance. Generating too many emojis at once could overwhelm the interface and make it difficult to work with the results, while too few might not meet your needs. If you require more than 20 emojis, you can simply generate multiple batches and combine them.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">How does the export functionality work, and what can I do with the exported files?</div>
            <div class="answer">
                <p>Our export functionality allows you to download your generated emojis in three different formats: TXT (plain text), CSV (comma-separated values), and JSON (JavaScript Object Notation). The TXT format is perfect for simple copying and pasting into documents or messages. The CSV format is ideal for importing into spreadsheet applications like Excel or Google Sheets for further analysis or organization. The JSON format is designed for developers who want to integrate the emoji data into applications or websites programmatically.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">Is my data private when using the Random Emoji Generator?</div>
            <div class="answer">
                <p>Absolutely. Our Random Emoji Generator operates entirely within your browser using client-side JavaScript. This means that no data about your emoji generations, favorites, or settings is sent to our servers or any third parties. Your privacy is important to us, and we've designed the tool to ensure that all your activity remains local to your device. The only exception is if you choose to share your emojis on social media, in which case only the specific content you choose to share will be sent to the respective social media platform.</p>
            </div>
        </div>

        <div class="qa-item">
            <div class="question">How does this tool compare to other emoji generators available online?</div>
            <div class="answer">
                <p>Our Random Emoji Generator Wheel stands out from other online emoji tools in several ways. First, the interactive wheel adds a fun, gamified element that makes generating emojis more engaging. Second, our tool offers more customization options, including category filtering, multiple output formats, and export functionality. Third, we provide features like history tracking and favorites that aren't commonly found in basic emoji generators. Finally, our tool is completely free to use, contains no advertisements, and respects your privacy by not collecting or storing any personal data.</p>
            </div>
        </div>
    </div>
</section>

<!-- Related Tools -->
<section class="related-tools">
    <div class="container">
        <h2>Related Tools</h2>
        <div class="tools-grid">
            <div class="tool-card">
                <i class="fas fa-palette"></i>
                <h3>Random Color Generator</h3>
                <p>Generate random colors in various formats for your design projects.</p>
                <a href="https://erandomgenerator.com/random-color-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-font"></i>
                <h3>Random Text Generator</h3>
                <p>Create random text for placeholder content or testing purposes.</p>
                <a href="https://erandomgenerator.com/random-text-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-hashtag"></i>
                <h3>Random Hashtag Generator</h3>
                <p>Generate trending hashtags for your social media posts.</p>
                <a href="https://erandomgenerator.com/random-hashtag-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-dice"></i>
                <h3>Random Number Generator</h3>
                <p>Generate random numbers within custom ranges for games or statistics.</p>
                <a href="https://erandomgenerator.com/random-number-generator">Try Now</a>
            </div>
        </div>
    </div>
</section>

<!-- Tool Directory -->
<section class="tool-directory">
    <div class="container">
        <h2>All Tools</h2>
        <div class="directory-categories">
            <div class="category-filter">
                <button class="active">All Tools</button>
                <button>Text Generators</button>
                <button>Number Generators</button>
                <button>Design Tools</button>
                <button>Web Development</button>
                <button>Games & Fun</button>
            </div>
        </div>
        <div class="tools-grid">
            <div class="tool-card">
                <i class="fas fa-dice"></i>
                <h3>Random Number Generator</h3>
                <p>Generate random numbers within custom ranges.</p>
                <a href="https://erandomgenerator.com/random-number-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-list-ol"></i>
                <h3>Random List Generator</h3>
                <p>Create randomized lists from your input items.</p>
                <a href="https://erandomgenerator.com/random-list-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-palette"></i>
                <h3>Random Color Generator</h3>
                <p>Generate random colors in various formats.</p>
                <a href="https://erandomgenerator.com/random-color-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-font"></i>
                <h3>Random Text Generator</h3>
                <p>Create random text for placeholder content.</p>
                <a href="https://erandomgenerator.com/random-text-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-hashtag"></i>
                <h3>Random Hashtag Generator</h3>
                <p>Generate trending hashtags for social media.</p>
                <a href="https://erandomgenerator.com/random-hashtag-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-quote-right"></i>
                <h3>Random Quote Generator</h3>
                <p>Get inspired with random quotes from famous people.</p>
                <a href="https://erandomgenerator.com/random-quote-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-image"></i>
                <h3>Random Image Generator</h3>
                <p>Generate placeholder images for your projects.</p>
                <a href="https://erandomgenerator.com/random-image-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-user"></i>
                <h3>Random Name Generator</h3>
                <p>Generate random names for characters or profiles.</p>
                <a href="https://erandomgenerator.com/random-name-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-map-marker-alt"></i>
                <h3>Random Address Generator</h3>
                <p>Create random addresses for testing purposes.</p>
                <a href="https://erandomgenerator.com/random-address-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-envelope"></i>
                <h3>Random Email Generator</h3>
                <p>Generate random email addresses for testing.</p>
                <a href="https://erandomgenerator.com/random-email-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-lock"></i>
                <h3>Random Password Generator</h3>
                <p>Create secure random passwords.</p>
                <a href="https://erandomgenerator.com/random-password-generator">Try Now</a>
            </div>
            <div class="tool-card">
                <i class="fas fa-calendar-alt"></i>
                <h3>Random Date Generator</h3>
                <p>Generate random dates within custom ranges.</p>
                <a href="https://erandomgenerator.com/random-date-generator">Try Now</a>
            </div>
        </div>
    </div>
</section>

<!-- Footer -->
<footer>
    <div class="container">
        <div class="footer-container">
            <div class="footer-column">
                <h3>Tools</h3>
                <ul>
                    <li><a href="https://erandomgenerator.com/random-number-generator">Random Number Generator</a></li>
                    <li><a href="https://erandomgenerator.com/random-color-generator">Random Color Generator</a></li>
                    <li><a href="https://erandomgenerator.com/random-text-generator">Random Text Generator</a></li>
                    <li><a href="https://erandomgenerator.com/random-name-generator">Random Name Generator</a></li>
                </ul>
            </div>
            <div class="footer-column">
                <h3>Categories</h3>
                <ul>
                    <li><a href="https://erandomgenerator.com/categories/text-generators">Text Generators</a></li>
                    <li><a href="https://erandomgenerator.com/categories/number-generators">Number Generators</a></li>
                    <li><a href="https://erandomgenerator.com/categories/design-tools">Design Tools</a></li>
                    <li><a href="https://erandomgenerator.com/categories/web-development">Web Development</a></li>
                </ul>
            </div>
            <div class="footer-column">
                <h3>Company</h3>
                <ul>
                    <li><a href="https://erandomgenerator.com/about">About Us</a></li>
                    <li><a href="https://erandomgenerator.com/contact">Contact</a></li>
                    <li><a href="https://erandomgenerator.com/privacy">Privacy Policy</a></li>
                    <li><a href="https://erandomgenerator.com/terms">Terms of Service</a></li>
                </ul>
            </div>
            <div class="footer-column">
                <h3>Connect</h3>
                <ul>
                    <li><a href="https://twitter.com/erandomgenerator"><i class="fab fa-twitter"></i> Twitter</a></li>
                    <li><a href="https://facebook.com/erandomgenerator"><i class="fab fa-facebook"></i> Facebook</a></li>
                    <li><a href="https://instagram.com/erandomgenerator"><i class="fab fa-instagram"></i> Instagram</a></li>
                    <li><a href="https://erandomgenerator.com/blog">Blog</a></li>
                </ul>
            </div>
        </div>
        <div class="footer-bottom">
            <p>&copy; 2023 eRandomGenerator. All rights reserved.</p>
        </div>
    </div>
</footer>

<!-- Toast Notification -->
<div class="toast" id="toast"></div>

<script>
    // Emoji data by category
    const emojiData = {
        smileys: ['๐Ÿ˜€', '๐Ÿ˜ƒ', '๐Ÿ˜„', '๐Ÿ˜', '๐Ÿ˜†', '๐Ÿ˜…', '๐Ÿ˜‚', '๐Ÿคฃ', '๐Ÿ˜Š', '๐Ÿ˜‡', '๐Ÿ™‚', '๐Ÿ™ƒ', '๐Ÿ˜‰', '๐Ÿ˜Œ', '๐Ÿ˜', '๐Ÿฅฐ', '๐Ÿ˜˜', '๐Ÿ˜—', '๐Ÿ˜™', '๐Ÿ˜š', '๐Ÿ˜‹', '๐Ÿ˜›', '๐Ÿ˜', '๐Ÿ˜œ', '๐Ÿคช', '๐Ÿคจ', '๐Ÿง', '๐Ÿค“', '๐Ÿ˜Ž', '๐Ÿคฉ', '๐Ÿฅณ', '๐Ÿ˜', '๐Ÿ˜’', '๐Ÿ˜ž', '๐Ÿ˜”', '๐Ÿ˜Ÿ', '๐Ÿ˜•', '๐Ÿ™', 'โ˜น๏ธ', '๐Ÿ˜ฃ', '๐Ÿ˜–', '๐Ÿ˜ซ', '๐Ÿ˜ฉ', '๐Ÿฅบ', '๐Ÿ˜ข', '๐Ÿ˜ญ', '๐Ÿ˜ค', '๐Ÿ˜ ', '๐Ÿ˜ก', '๐Ÿคฌ', '๐Ÿคฏ', '๐Ÿ˜ณ', '๐Ÿฅต', '๐Ÿฅถ', '๐Ÿ˜ฑ', '๐Ÿ˜จ', '๐Ÿ˜ฐ', '๐Ÿ˜ฅ', '๐Ÿ˜“', '๐Ÿค—', '๐Ÿค”', '๐Ÿคญ', '๐Ÿคซ', '๐Ÿคฅ', '๐Ÿ˜ถ', '๐Ÿ˜', '๐Ÿ˜‘', '๐Ÿ˜ฌ', '๐Ÿ™„', '๐Ÿ˜ฏ', '๐Ÿ˜ฆ', '๐Ÿ˜ง', '๐Ÿ˜ฎ', '๐Ÿ˜ฒ', '๐Ÿฅฑ', '๐Ÿ˜ด', '๐Ÿคค', '๐Ÿ˜ช', '๐Ÿ˜ต', '๐Ÿค', '๐Ÿฅด', '๐Ÿคข', '๐Ÿคฎ', '๐Ÿคง', '๐Ÿ˜ท', '๐Ÿค’', '๐Ÿค•', '๐Ÿค‘', '๐Ÿค '],
        animals: ['๐Ÿถ', '๐Ÿฑ', '๐Ÿญ', '๐Ÿน', '๐Ÿฐ', '๐ŸฆŠ', '๐Ÿป', '๐Ÿผ', '๐Ÿจ', '๐Ÿฏ', '๐Ÿฆ', '๐Ÿฎ', '๐Ÿท', '๐Ÿฝ', '๐Ÿธ', '๐Ÿต', '๐Ÿ™ˆ', '๐Ÿ™‰', '๐Ÿ™Š', '๐Ÿ’', '๐Ÿ”', '๐Ÿง', '๐Ÿฆ', '๐Ÿค', '๐Ÿฃ', '๐Ÿฅ', '๐Ÿฆ†', '๐Ÿฆ…', '๐Ÿฆ‰', '๐Ÿฆ‡', '๐Ÿบ', '๐Ÿ—', '๐Ÿด', '๐Ÿฆ„', '๐Ÿ', '๐Ÿ›', '๐Ÿฆ‹', '๐ŸŒ', '๐Ÿž', '๐Ÿœ', '๐ŸฆŸ', '๐Ÿฆ—', '๐Ÿ•ท', '๐Ÿ•ธ', '๐Ÿฆ‚', '๐Ÿข', '๐Ÿ', '๐ŸฆŽ', '๐Ÿฆ–', '๐Ÿฆ•', '๐Ÿ™', '๐Ÿฆ‘', '๐Ÿฆ', '๐Ÿฆž', '๐Ÿฆ€', '๐Ÿก', '๐Ÿ ', '๐ŸŸ', '๐Ÿฌ', '๐Ÿณ', '๐Ÿ‹', '๐Ÿฆˆ', '๐ŸŠ', '๐Ÿ…', '๐Ÿ†', '๐Ÿฆ“', '๐Ÿฆ', '๐Ÿฆง', '๐Ÿ˜', '๐Ÿฆ›', '๐Ÿฆ', '๐Ÿช', '๐Ÿซ', '๐Ÿฆ’', '๐Ÿฆ˜', '๐Ÿฆฌ', '๐Ÿƒ', '๐Ÿ‚', '๐Ÿ„', '๐ŸŽ', '๐Ÿ–', '๐Ÿ', '๐Ÿ‘', '๐Ÿฆ™', '๐Ÿ', '๐ŸฆŒ', '๐Ÿ•', '๐Ÿฉ', '๐Ÿฆฎ', '๐Ÿˆ', '๐Ÿ“', '๐Ÿฆƒ', '๐Ÿฆš', '๐Ÿฆœ', '๐Ÿฆข', '๐Ÿฆฉ', '๐Ÿ•Š', '๐Ÿ‡', '๐Ÿฆ', '๐Ÿฆจ', '๐Ÿฆก', '๐Ÿฆซ', '๐Ÿฆฆ', '๐Ÿฆฅ', '๐Ÿ', '๐Ÿ€', '๐Ÿฟ'],
        food: ['๐Ÿ', '๐ŸŽ', '๐Ÿ', '๐ŸŠ', '๐Ÿ‹', '๐ŸŒ', '๐Ÿ‰', '๐Ÿ‡', '๐Ÿ“', '๐Ÿซ', '๐Ÿˆ', '๐Ÿ’', '๐Ÿ‘', '๐Ÿฅญ', '๐Ÿ', '๐Ÿฅฅ', '๐Ÿฅ', '๐Ÿ…', '๐Ÿ†', '๐Ÿฅ‘', '๐Ÿฅฆ', '๐Ÿฅฌ', '๐Ÿฅ’', '๐ŸŒถ', '๐Ÿซ‘', '๐ŸŒฝ', '๐Ÿฅ•', '๐Ÿซ’', '๐Ÿง„', '๐Ÿง…', '๐Ÿฅ”', '๐Ÿ ', '๐Ÿฅ', '๐Ÿฅฏ', '๐Ÿž', '๐Ÿฅ–', '๐Ÿฅจ', '๐Ÿง€', '๐Ÿฅš', '๐Ÿณ', '๐Ÿงˆ', '๐Ÿฅž', '๐Ÿง‡', '๐Ÿฅ“', '๐Ÿฅฉ', '๐Ÿ—', '๐Ÿ–', '๐ŸŒญ', '๐Ÿ”', '๐ŸŸ', '๐Ÿ•', '๐Ÿฅช', '๐Ÿฅ™', '๐Ÿง†', '๐ŸŒฎ', '๐ŸŒฏ', '๐Ÿซ”', '๐Ÿฅ—', '๐Ÿฅ˜', '๐Ÿซ•', '๐Ÿฅซ', '๐Ÿ', '๐Ÿœ', '๐Ÿฒ', '๐Ÿ›', '๐Ÿฃ', '๐Ÿฑ', '๐ŸฅŸ', '๐Ÿฆช', '๐Ÿค', '๐Ÿ™', '๐Ÿš', '๐Ÿ˜', '๐Ÿฅ', '๐Ÿฅ ', '๐Ÿฅฎ', '๐Ÿข', '๐Ÿก', '๐Ÿง', '๐Ÿจ', '๐Ÿฆ', '๐Ÿฅง', '๐Ÿง', '๐Ÿฐ', '๐ŸŽ‚', '๐Ÿฎ', '๐Ÿญ', '๐Ÿฌ', '๐Ÿซ', '๐Ÿฟ', '๐Ÿฉ', '๐Ÿช', '๐ŸŒฐ', '๐Ÿฅœ', '๐Ÿฏ', '๐Ÿฅ›', '๐Ÿผ', '๐Ÿซ–', 'โ˜•', '๐Ÿต', '๐Ÿงƒ', '๐Ÿฅค', '๐Ÿง‹', '๐Ÿถ', '๐Ÿบ', '๐Ÿป', '๐Ÿฅ‚', '๐Ÿท', '๐Ÿฅƒ', '๐Ÿธ', '๐Ÿน', '๐Ÿง‰', '๐Ÿพ', '๐ŸงŠ', '๐Ÿฅ„', '๐Ÿด', '๐Ÿฝ', '๐Ÿฅฃ', '๐Ÿฅก', '๐Ÿฅข', '๐Ÿง‚'],
        activities: ['โšฝ', '๐Ÿ€', '๐Ÿˆ', 'โšพ', '๐ŸฅŽ', '๐ŸŽพ', '๐Ÿ', '๐Ÿ‰', '๐Ÿฅ', '๐ŸŽฑ', '๐Ÿช€', '๐Ÿ“', '๐Ÿธ', '๐Ÿ’', '๐Ÿ‘', '๐Ÿฅ', '๐Ÿ', '๐Ÿชƒ', '๐Ÿฅ…', 'โ›ณ', '๐Ÿช', '๐Ÿน', '๐ŸŽฃ', '๐Ÿคฟ', '๐ŸฅŠ', '๐Ÿฅ‹', '๐ŸŽฝ', '๐Ÿ›น', '๐Ÿ›ผ', '๐Ÿ›ท', 'โ›ธ', '๐ŸฅŒ', '๐ŸŽฟ', 'โ›ท', '๐Ÿ‚', '๐Ÿช‚', '๐Ÿ‹๏ธ', '๐Ÿ‹๏ธโ€โ™‚๏ธ', '๐Ÿ‹๏ธโ€โ™€๏ธ', '๐Ÿคผ', '๐Ÿคผโ€โ™‚๏ธ', '๐Ÿคผโ€โ™€๏ธ', '๐Ÿคธ', '๐Ÿคธโ€โ™‚๏ธ', '๐Ÿคธโ€โ™€๏ธ', 'โ›น๏ธ', 'โ›น๏ธโ€โ™‚๏ธ', 'โ›น๏ธโ€โ™€๏ธ', '๐Ÿคบ', '๐Ÿคพ', '๐Ÿคพโ€โ™‚๏ธ', '๐Ÿคพโ€โ™€๏ธ', '๐ŸŒ๏ธ', '๐ŸŒ๏ธโ€โ™‚๏ธ', '๐ŸŒ๏ธโ€โ™€๏ธ', '๐Ÿ‡', '๐Ÿง˜', '๐Ÿง˜โ€โ™‚๏ธ', '๐Ÿง˜โ€โ™€๏ธ', '๐Ÿ„', '๐Ÿ„โ€โ™‚๏ธ', '๐Ÿ„โ€โ™€๏ธ', '๐ŸŠ', '๐ŸŠโ€โ™‚๏ธ', '๐ŸŠโ€โ™€๏ธ', '๐Ÿคฝ', '๐Ÿคฝโ€โ™‚๏ธ', '๐Ÿคฝโ€โ™€๏ธ', '๐Ÿšฃ', '๐Ÿšฃโ€โ™‚๏ธ', '๐Ÿšฃโ€โ™€๏ธ', '๐Ÿง—', '๐Ÿง—โ€โ™‚๏ธ', '๐Ÿง—โ€โ™€๏ธ', '๐Ÿšด', '๐Ÿšดโ€โ™‚๏ธ', '๐Ÿšดโ€โ™€๏ธ', '๐Ÿšต', '๐Ÿšตโ€โ™‚๏ธ', '๐Ÿšตโ€โ™€๏ธ'],
        travel: ['๐Ÿš—', '๐Ÿš•', '๐Ÿš™', '๐ŸšŒ', '๐ŸšŽ', '๐ŸŽ', '๐Ÿš“', '๐Ÿš‘', '๐Ÿš’', '๐Ÿš', '๐Ÿ›ป', '๐Ÿšš', '๐Ÿš›', '๐Ÿšœ', '๐Ÿฆฏ', '๐Ÿฆฝ', '๐Ÿฆผ', '๐Ÿ›ด', '๐Ÿšฒ', '๐Ÿ›ต', '๐Ÿ', '๐Ÿ›บ', '๐Ÿšจ', '๐Ÿš”', '๐Ÿš', '๐Ÿš˜', '๐Ÿš–', '๐Ÿšก', '๐Ÿš ', '๐ŸšŸ', '๐Ÿšƒ', '๐Ÿš‹', '๐Ÿšž', '๐Ÿš', '๐Ÿš„', '๐Ÿš…', '๐Ÿšˆ', '๐Ÿš‚', '๐Ÿš†', '๐Ÿš‡', '๐ŸšŠ', '๐Ÿš‰', 'โœˆ๏ธ', '๐Ÿ›ซ', '๐Ÿ›ฌ', '๐Ÿ›ฉ', '๐Ÿ’บ', '๐Ÿš', '๐ŸšŸ', '๐Ÿš€', '๐Ÿ›ธ', '๐Ÿ›ถ', 'โ›ต', '๐Ÿšค', '๐Ÿ›ฅ', '๐Ÿ›ณ', 'โ›ด', '๐Ÿšข', 'โš“', 'โ›ฝ', '๐Ÿšง', '๐Ÿšฆ', '๐Ÿšฅ', '๐Ÿš', '๐Ÿ—บ', '๐Ÿ—ฟ', '๐Ÿ—ฝ', '๐Ÿ—ผ', '๐Ÿฐ', '๐Ÿฏ', '๐ŸŸ', '๐ŸŽก', '๐ŸŽข', '๐ŸŽ ', 'โ›ฒ', 'โ›ฑ', '๐Ÿ–', '๐Ÿ', '๐Ÿœ', '๐ŸŒ‹', 'โ›ฐ', '๐Ÿ”', '๐Ÿ—ป', '๐Ÿ•', 'โ›บ', '๐Ÿ›–', '๐Ÿ ', '๐Ÿก', '๐Ÿ˜', '๐Ÿš', '๐Ÿ—', '๐Ÿญ', '๐Ÿข', '๐Ÿฌ', '๐Ÿฃ', '๐Ÿค', '๐Ÿฅ', '๐Ÿฆ', '๐Ÿจ', '๐Ÿช', '๐Ÿซ', '๐Ÿฉ', '๐Ÿ’’', '๐Ÿ›', 'โ›ช', '๐Ÿ•Œ', '๐Ÿ•', '๐Ÿ›•', '๐Ÿ•‹', 'โ›ฉ', '๐Ÿ›ค', '๐Ÿ›ฃ', '๐Ÿ—พ', '๐ŸŽ‘', '๐Ÿž', '๐ŸŒ…', '๐ŸŒ„', '๐ŸŒ ', '๐ŸŽ‡', '๐ŸŽ†', '๐ŸŒ‡', '๐ŸŒ†', '๐Ÿ™', '๐ŸŒƒ', '๐ŸŒŒ', '๐ŸŒ‰', '๐ŸŒ'],
        objects: ['โŒš', '๐Ÿ“ฑ', '๐Ÿ“ฒ', '๐Ÿ’ป', 'โŒจ๏ธ', '๐Ÿ–ฅ', '๐Ÿ–จ', '๐Ÿ–ฑ', '๐Ÿ–ฒ', '๐Ÿ•น', '๐Ÿ—œ', '๐Ÿ’ฝ', '๐Ÿ’พ', '๐Ÿ’ฟ', '๐Ÿ“€', '๐Ÿ“ผ', '๐Ÿ“ท', '๐Ÿ“ธ', '๐Ÿ“น', '๐ŸŽฅ', '๐Ÿ“ฝ', '๐ŸŽž', '๐Ÿ“ž', 'โ˜Ž๏ธ', '๐Ÿ“Ÿ', '๐Ÿ“ ', '๐Ÿ“บ', '๐Ÿ“ป', '๐ŸŽ™', '๐ŸŽš', '๐ŸŽ›', '๐Ÿงญ', 'โฑ', 'โฒ', 'โฐ', '๐Ÿ•ฐ', 'โŒ›', 'โณ', '๐Ÿ“ก', '๐Ÿ”‹', '๐Ÿ”Œ', '๐Ÿ’ก', '๐Ÿ”ฆ', '๐Ÿ•ฏ', '๐Ÿช”', '๐Ÿงฏ', '๐Ÿ›ข', '๐Ÿ’ธ', '๐Ÿ’ต', '๐Ÿ’ด', '๐Ÿ’ถ', '๐Ÿ’ท', '๐Ÿช™', '๐Ÿ’ฐ', '๐Ÿ’ณ', '๐Ÿ’Ž', 'โš–', '๐Ÿชœ', '๐Ÿงฐ', '๐Ÿช›', '๐Ÿ”ง', '๐Ÿ”จ', 'โš’', '๐Ÿ› ', 'โ›', '๐Ÿชš', '๐Ÿ”ฉ', 'โš™', '๐Ÿชค', '๐Ÿงฑ', 'โ›“', '๐Ÿงฒ', '๐Ÿ”ซ', '๐Ÿ’ฃ', '๐Ÿงจ', '๐Ÿช“', '๐Ÿ”ช', '๐Ÿ—ก', 'โš”', '๐Ÿ›ก', '๐Ÿšฌ', 'โšฐ', '๐Ÿชฆ', 'โšฑ', '๐Ÿบ', '๐Ÿ”ฎ', '๐Ÿ“ฟ', '๐Ÿงฟ', '๐Ÿ’ˆ', 'โš—', '๐Ÿ”ญ', '๐Ÿ”ฌ', '๐Ÿ•ณ', '๐Ÿฉน', '๐Ÿฉบ', '๐Ÿ’Š', '๐Ÿ’‰', '๐Ÿฉธ', '๐Ÿงฌ', '๐Ÿฆ ', '๐Ÿงน', '๐Ÿช ', '๐Ÿงบ', '๐Ÿงป', '๐Ÿšฝ', '๐Ÿšฐ', '๐Ÿšฟ', '๐Ÿ›', '๐Ÿ›€', '๐Ÿงผ', '๐Ÿชฅ', '๐Ÿช’', '๐Ÿงฝ', '๐Ÿชฃ', '๐Ÿงด', '๐Ÿ›Ž', '๐Ÿ”‘', '๐Ÿ—', '๐Ÿšช', '๐Ÿช‘', '๐Ÿ›‹', '๐Ÿ›', '๐Ÿ›Œ', '๐Ÿงธ', '๐Ÿช†', '๐Ÿ–ผ', '๐Ÿชž', '๐ŸชŸ', '๐Ÿ›', '๐Ÿ›’', '๐ŸŽ', '๐ŸŽˆ', '๐ŸŽ', '๐ŸŽ€', '๐Ÿช„', '๐Ÿช…', '๐ŸŽŠ', '๐ŸŽ‰', '๐ŸŽŽ', '๐Ÿฎ', '๐ŸŽ', '๐Ÿงง', 'โœ‰๏ธ', '๐Ÿ“ฉ', '๐Ÿ“จ', '๐Ÿ“ง', '๐Ÿ’Œ', '๐Ÿ“ฅ', '๐Ÿ“ค', '๐Ÿ“ฆ', '๐Ÿท', '๐Ÿชง', '๐Ÿ“ช', '๐Ÿ“ซ', '๐Ÿ“ฌ', '๐Ÿ“ญ', '๐Ÿ“ฏ', '๐Ÿ“œ', '๐Ÿ“ƒ', '๐Ÿ“„', '๐Ÿ“‘', '๐Ÿงพ', '๐Ÿ“Š', '๐Ÿ“ˆ', '๐Ÿ“‰', '๐Ÿ—’', '๐Ÿ—“', '๐Ÿ“†', '๐Ÿ“…', '๐Ÿ—‘', '๐Ÿ“‡', '๐Ÿ—ƒ', '๐Ÿ—ณ', '๐Ÿ—„', '๐Ÿ“‹', '๐Ÿ“', '๐Ÿ“‚', '๐Ÿ—‚', '๐Ÿ—ž', '๐Ÿ“ฐ', '๐Ÿ““', '๐Ÿ“”', '๐Ÿ“’', '๐Ÿ“•', '๐Ÿ“—', '๐Ÿ“˜', '๐Ÿ“™', '๐Ÿ“š', '๐Ÿ“–', '๐Ÿ”–', '๐Ÿงท', '๐Ÿ”—', '๐Ÿ“Ž', '๐Ÿ–‡', '๐Ÿ“', '๐Ÿ“', '๐Ÿงฎ', '๐Ÿ“Œ', 'โœ‚๏ธ', '๐Ÿ–Š', '๐Ÿ–‹', 'โœ’๏ธ', '๐Ÿ–Œ', '๐Ÿ–', '๐Ÿ“', 'โœ๏ธ', '๐Ÿ”', '๐Ÿ”Ž'],
        symbols: ['โค๏ธ', '๐Ÿงก', '๐Ÿ’›', '๐Ÿ’š', '๐Ÿ’™', '๐Ÿ’œ', '๐Ÿ–ค', '๐Ÿค', '๐ŸคŽ', '๐Ÿ’”', 'โฃ', '๐Ÿ’•', '๐Ÿ’ž', '๐Ÿ’“', '๐Ÿ’—', '๐Ÿ’–', '๐Ÿ’˜', '๐Ÿ’', '๐Ÿ’Ÿ', 'โ˜ฎ', 'โœ', 'โ˜ช', '๐Ÿ•‰', 'โ˜ธ', 'โœก', '๐Ÿ”ฏ', '๐Ÿ•Ž', 'โ˜ฏ', 'โ˜ฆ', '๐Ÿ›', 'โ›Ž', 'โ™ˆ', 'โ™‰', 'โ™Š', 'โ™‹', 'โ™Œ', 'โ™', 'โ™Ž', 'โ™', 'โ™', 'โ™‘', 'โ™’', 'โ™“', '๐Ÿ†”', 'โš›', '๐Ÿ‰‘', 'โ˜ข', 'โ˜ฃ', '๐Ÿ“ด', '๐Ÿ“ณ', '๐Ÿˆถ', '๐Ÿˆš', '๐Ÿˆธ', '๐Ÿˆบ', '๐Ÿˆท', 'โœด', '๐Ÿ†š', '๐Ÿ’ฎ', '๐Ÿ‰', 'ใŠ™', 'ใŠ—', '๐Ÿˆด', '๐Ÿˆต', '๐Ÿˆน', '๐Ÿˆฒ', '๐Ÿ…ฐ', '๐Ÿ…ฑ', '๐Ÿ†Ž', '๐Ÿ†‘', '๐Ÿ…พ', '๐Ÿ†˜', 'โŒ', 'โญ•', '๐Ÿ›‘', 'โ›”', '๐Ÿ“›', '๐Ÿšซ', '๐Ÿ’ฏ', '๐Ÿ’ข', 'โ™จ', '๐Ÿšท', '๐Ÿšฏ', '๐Ÿšณ', '๐Ÿšฑ', '๐Ÿ”ž', '๐Ÿ“ต', '๐Ÿšญ', 'โ—', 'โ•', 'โ“', 'โ”', 'โ€ผ', 'โ‰', '๐Ÿ”…', '๐Ÿ”†', 'ใ€ฝ', 'โš ', '๐Ÿšธ', '๐Ÿ”ฑ', 'โšœ', '๐Ÿ”ฐ', 'โ™ป', 'โœ…', '๐Ÿˆฏ', '๐Ÿ’น', 'โ‡', 'โœณ', 'โŽ', '๐ŸŒ', '๐Ÿ’ ', 'โ“‚', '๐ŸŒ€', '๐Ÿ’ค', '๐Ÿง', '๐Ÿšพ', 'โ™ฟ', '๐Ÿ…ฟ', '๐Ÿ›—', '๐Ÿ›„', '๐Ÿ”ฃ', 'โš›', '๐Ÿ‰‘', 'โ˜ข', 'โ˜ฃ', '๐Ÿ“ด', '๐Ÿ“ณ', '๐Ÿˆถ', '๐Ÿˆš', '๐Ÿˆธ', '๐Ÿˆบ', '๐Ÿˆท', 'โœด', '๐Ÿ†š', '๐Ÿ’ฎ', '๐Ÿ‰', 'ใŠ™', 'ใŠ—', '๐Ÿˆด', '๐Ÿˆต', '๐Ÿˆน', '๐Ÿˆฒ', '๐Ÿ…ฐ', '๐Ÿ…ฑ', '๐Ÿ†Ž', '๐Ÿ†‘', '๐Ÿ…พ', '๐Ÿ†˜', 'โŒ', 'โญ•', '๐Ÿ›‘', 'โ›”', '๐Ÿ“›', '๐Ÿšซ', '๐Ÿ’ฏ', '๐Ÿ’ข', 'โ™จ', '๐Ÿšท', '๐Ÿšฏ', '๐Ÿšณ', '๐Ÿšฑ', '๐Ÿ”ž', '๐Ÿ“ต', '๐Ÿšญ', 'โ—', 'โ•', 'โ“', 'โ”', 'โ€ผ', 'โ‰', '๐Ÿ”…', '๐Ÿ”†', 'ใ€ฝ', 'โš ', '๐Ÿšธ', '๐Ÿ”ฑ', 'โšœ', '๐Ÿ”ฐ', 'โ™ป', 'โœ…', '๐Ÿˆฏ', '๐Ÿ’น', 'โ‡', 'โœณ', 'โŽ', '๐ŸŒ', '๐Ÿ’ ', 'โ“‚', '๐ŸŒ€', '๐Ÿ’ค', '๐Ÿง', '๐Ÿšพ', 'โ™ฟ', '๐Ÿ…ฟ', '๐Ÿ›—', '๐Ÿ›„', '๐Ÿ”ฃ', '๐Ÿ”ค', '๐Ÿ…ฐ', '๐Ÿ†Ž', '๐Ÿ†‘', '๐Ÿ…พ', '๐Ÿ†˜', 'โŒ', 'โญ•', '๐Ÿ›‘', 'โ›”', '๐Ÿ“›', '๐Ÿšซ', '๐Ÿ’ฏ', '๐Ÿ’ข', 'โ™จ', '๐Ÿšท', '๐Ÿšฏ', '๐Ÿšณ', '๐Ÿšฑ', '๐Ÿ”ž', '๐Ÿ“ต', '๐Ÿšญ', 'โ—', 'โ•', 'โ“', 'โ”', 'โ€ผ', 'โ‰', '๐Ÿ”…', '๐Ÿ”†', 'ใ€ฝ', 'โš ', '๐Ÿšธ', '๐Ÿ”ฑ', 'โšœ', '๐Ÿ”ฐ', 'โ™ป', 'โœ…', '๐Ÿˆฏ', '๐Ÿ’น', 'โ‡', 'โœณ', 'โŽ', '๐ŸŒ', '๐Ÿ’ ', 'โ“‚', '๐ŸŒ€', '๐Ÿ’ค', '๐Ÿง', '๐Ÿšพ', 'โ™ฟ', '๐Ÿ…ฟ', '๐Ÿ›—', '๐Ÿ›„', '๐Ÿ”ฃ'],
        flags: ['๐Ÿ', '๐Ÿšฉ', '๐ŸŽŒ', '๐Ÿด', '๐Ÿณ๏ธ', '๐Ÿณ๏ธโ€๐ŸŒˆ', '๐Ÿณ๏ธโ€โšง๏ธ', '๐Ÿดโ€โ˜ ๏ธ', '๐Ÿ‡ฆ๐Ÿ‡จ', '๐Ÿ‡ฆ๐Ÿ‡ฉ', '๐Ÿ‡ฆ๐Ÿ‡ช', '๐Ÿ‡ฆ๐Ÿ‡ซ', '๐Ÿ‡ฆ๐Ÿ‡ฌ', '๐Ÿ‡ฆ๐Ÿ‡ฎ', '๐Ÿ‡ฆ๐Ÿ‡ฑ', '๐Ÿ‡ฆ๐Ÿ‡ฒ', '๐Ÿ‡ฆ๐Ÿ‡ด', '๐Ÿ‡ฆ๐Ÿ‡ถ', '๐Ÿ‡ฆ๐Ÿ‡ท', '๐Ÿ‡ฆ๐Ÿ‡ธ', '๐Ÿ‡ฆ๐Ÿ‡น', '๐Ÿ‡ฆ๐Ÿ‡บ', '๐Ÿ‡ฆ๐Ÿ‡ผ', '๐Ÿ‡ฆ๐Ÿ‡ฝ', '๐Ÿ‡ฆ๐Ÿ‡ฟ', '๐Ÿ‡ง๐Ÿ‡ฆ', '๐Ÿ‡ง๐Ÿ‡ง', '๐Ÿ‡ง๐Ÿ‡ฉ', '๐Ÿ‡ง๐Ÿ‡ช', '๐Ÿ‡ง๐Ÿ‡ซ', '๐Ÿ‡ง๐Ÿ‡ฌ', '๐Ÿ‡ง๐Ÿ‡ญ', '๐Ÿ‡ง๐Ÿ‡ฎ', '๐Ÿ‡ง๐Ÿ‡ฏ', '๐Ÿ‡ง๐Ÿ‡ฑ', '๐Ÿ‡ง๐Ÿ‡ฒ', '๐Ÿ‡ง๐Ÿ‡ณ', '๐Ÿ‡ง๐Ÿ‡ด', '๐Ÿ‡ง๐Ÿ‡ถ', '๐Ÿ‡ง๐Ÿ‡ท', '๐Ÿ‡ง๐Ÿ‡ธ', '๐Ÿ‡ง๐Ÿ‡น', '๐Ÿ‡ง๐Ÿ‡ป', '๐Ÿ‡ง๐Ÿ‡ผ', '๐Ÿ‡ง๐Ÿ‡พ', '๐Ÿ‡ง๐Ÿ‡ฟ', '๐Ÿ‡จ๐Ÿ‡ฆ', '๐Ÿ‡จ๐Ÿ‡จ', '๐Ÿ‡จ๐Ÿ‡ฉ', '๐Ÿ‡จ๐Ÿ‡ซ', '๐Ÿ‡จ๐Ÿ‡ฌ', '๐Ÿ‡จ๐Ÿ‡ญ', '๐Ÿ‡จ๐Ÿ‡ฎ', '๐Ÿ‡จ๐Ÿ‡ฐ', '๐Ÿ‡จ๐Ÿ‡ฑ', '๐Ÿ‡จ๐Ÿ‡ฒ', '๐Ÿ‡จ๐Ÿ‡ณ', '๐Ÿ‡จ๐Ÿ‡ด', '๐Ÿ‡จ๐Ÿ‡ต', '๐Ÿ‡จ๐Ÿ‡ท', '๐Ÿ‡จ๐Ÿ‡บ', '๐Ÿ‡จ๐Ÿ‡ป', '๐Ÿ‡จ๐Ÿ‡ผ', '๐Ÿ‡จ๐Ÿ‡ฝ', '๐Ÿ‡จ๐Ÿ‡พ', '๐Ÿ‡จ๐Ÿ‡ฟ', '๐Ÿ‡ฉ๐Ÿ‡ช', '๐Ÿ‡ฉ๐Ÿ‡ฌ', '๐Ÿ‡ฉ๐Ÿ‡ฏ', '๐Ÿ‡ฉ๐Ÿ‡ฐ', '๐Ÿ‡ฉ๐Ÿ‡ฒ', '๐Ÿ‡ฉ๐Ÿ‡ด', '๐Ÿ‡ฉ๐Ÿ‡ฟ', '๐Ÿ‡ช๐Ÿ‡ฆ', '๐Ÿ‡ช๐Ÿ‡จ', '๐Ÿ‡ช๐Ÿ‡ช', '๐Ÿ‡ช๐Ÿ‡ฌ', '๐Ÿ‡ช๐Ÿ‡ญ', '๐Ÿ‡ช๐Ÿ‡ท', '๐Ÿ‡ช๐Ÿ‡ธ', '๐Ÿ‡ช๐Ÿ‡น', '๐Ÿ‡ช๐Ÿ‡บ', '๐Ÿ‡ซ๐Ÿ‡ฎ', '๐Ÿ‡ซ๐Ÿ‡ฏ', '๐Ÿ‡ซ๐Ÿ‡ฐ', '๐Ÿ‡ซ๐Ÿ‡ฒ', '๐Ÿ‡ซ๐Ÿ‡ด', '๐Ÿ‡ซ๐Ÿ‡ท', '๐Ÿ‡ฌ๐Ÿ‡ฆ', '๐Ÿ‡ฌ๐Ÿ‡ง', '๐Ÿ‡ฌ๐Ÿ‡ฉ', '๐Ÿ‡ฌ๐Ÿ‡ช', '๐Ÿ‡ฌ๐Ÿ‡ซ', '๐Ÿ‡ฌ๐Ÿ‡ฌ', '๐Ÿ‡ฌ๐Ÿ‡ญ', '๐Ÿ‡ฌ๐Ÿ‡ฎ', '๐Ÿ‡ฌ๐Ÿ‡ฑ', '๐Ÿ‡ฌ๐Ÿ‡ฒ', '๐Ÿ‡ฌ๐Ÿ‡ณ', '๐Ÿ‡ฌ๐Ÿ‡ต', '๐Ÿ‡ฌ๐Ÿ‡ถ', '๐Ÿ‡ฌ๐Ÿ‡ท', '๐Ÿ‡ฌ๐Ÿ‡ธ', '๐Ÿ‡ฌ๐Ÿ‡น', '๐Ÿ‡ฌ๐Ÿ‡บ', '๐Ÿ‡ฌ๐Ÿ‡ผ', '๐Ÿ‡ฌ๐Ÿ‡พ', '๐Ÿ‡ญ๐Ÿ‡ฐ', '๐Ÿ‡ญ๐Ÿ‡ฒ', '๐Ÿ‡ญ๐Ÿ‡ณ', '๐Ÿ‡ญ๐Ÿ‡ท', '๐Ÿ‡ญ๐Ÿ‡น', '๐Ÿ‡ญ๐Ÿ‡บ', '๐Ÿ‡ฎ๐Ÿ‡จ', '๐Ÿ‡ฎ๐Ÿ‡ฉ', '๐Ÿ‡ฎ๐Ÿ‡ช', '๐Ÿ‡ฎ๐Ÿ‡ฑ', '๐Ÿ‡ฎ๐Ÿ‡ฒ', '๐Ÿ‡ฎ๐Ÿ‡ณ', '๐Ÿ‡ฎ๐Ÿ‡ด', '๐Ÿ‡ฎ๐Ÿ‡ถ', '๐Ÿ‡ฎ๐Ÿ‡ท', '๐Ÿ‡ฎ๐Ÿ‡ธ', '๐Ÿ‡ฎ๐Ÿ‡น', '๐Ÿ‡ฏ๐Ÿ‡ช', '๐Ÿ‡ฏ๐Ÿ‡ฒ', '๐Ÿ‡ฏ๐Ÿ‡ด', '๐Ÿ‡ฏ๐Ÿ‡ต', '๐Ÿ‡ฐ๐Ÿ‡ช', '๐Ÿ‡ฐ๐Ÿ‡ฌ', '๐Ÿ‡ฐ๐Ÿ‡ญ', '๐Ÿ‡ฐ๐Ÿ‡ฎ', '๐Ÿ‡ฐ๐Ÿ‡ฒ', '๐Ÿ‡ฐ๐Ÿ‡ณ', '๐Ÿ‡ฐ๐Ÿ‡ต', '๐Ÿ‡ฐ๐Ÿ‡ท', '๐Ÿ‡ฐ๐Ÿ‡ผ', '๐Ÿ‡ฐ๐Ÿ‡พ', '๐Ÿ‡ฐ๐Ÿ‡ฟ', '๐Ÿ‡ฑ๐Ÿ‡ฆ', '๐Ÿ‡ฑ๐Ÿ‡ง', '๐Ÿ‡ฑ๐Ÿ‡จ', '๐Ÿ‡ฑ๐Ÿ‡ฎ', '๐Ÿ‡ฑ๐Ÿ‡ฐ', '๐Ÿ‡ฑ๐Ÿ‡ท', '๐Ÿ‡ฑ๐Ÿ‡ธ', '๐Ÿ‡ฑ๐Ÿ‡น', '๐Ÿ‡ฑ๐Ÿ‡บ', '๐Ÿ‡ฑ๐Ÿ‡ป', '๐Ÿ‡ฑ๐Ÿ‡พ', '๐Ÿ‡ฒ๐Ÿ‡ฆ', '๐Ÿ‡ฒ๐Ÿ‡จ', '๐Ÿ‡ฒ๐Ÿ‡ฉ', '๐Ÿ‡ฒ๐Ÿ‡ช', '๐Ÿ‡ฒ๐Ÿ‡ซ', '๐Ÿ‡ฒ๐Ÿ‡ฌ', '๐Ÿ‡ฒ๐Ÿ‡ญ', '๐Ÿ‡ฒ๐Ÿ‡ฐ', '๐Ÿ‡ฒ๐Ÿ‡ฑ', '๐Ÿ‡ฒ๐Ÿ‡ฒ', '๐Ÿ‡ฒ๐Ÿ‡ณ', '๐Ÿ‡ฒ๐Ÿ‡ด', '๐Ÿ‡ฒ๐Ÿ‡ต', '๐Ÿ‡ฒ๐Ÿ‡ถ', '๐Ÿ‡ฒ๐Ÿ‡ท', '๐Ÿ‡ฒ๐Ÿ‡ธ', '๐Ÿ‡ฒ๐Ÿ‡น', '๐Ÿ‡ฒ๐Ÿ‡บ', '๐Ÿ‡ฒ๐Ÿ‡ป', '๐Ÿ‡ฒ๐Ÿ‡ผ', '๐Ÿ‡ฒ๐Ÿ‡ฝ', '๐Ÿ‡ฒ๐Ÿ‡พ', '๐Ÿ‡ฒ๐Ÿ‡ฟ', '๐Ÿ‡ณ๐Ÿ‡ฆ', '๐Ÿ‡ณ๐Ÿ‡จ', '๐Ÿ‡ณ๐Ÿ‡ช', '๐Ÿ‡ณ๐Ÿ‡ซ', '๐Ÿ‡ณ๐Ÿ‡ฌ', '๐Ÿ‡ณ๐Ÿ‡ฎ', '๐Ÿ‡ณ๐Ÿ‡ฑ', '๐Ÿ‡ณ๐Ÿ‡ด', '๐Ÿ‡ณ๐Ÿ‡ต', '๐Ÿ‡ณ๐Ÿ‡ท', '๐Ÿ‡ณ๐Ÿ‡บ', '๐Ÿ‡ณ๐Ÿ‡ฟ', '๐Ÿ‡ด๐Ÿ‡ฒ', '๐Ÿ‡ต๐Ÿ‡ฆ', '๐Ÿ‡ต๐Ÿ‡ช', '๐Ÿ‡ต๐Ÿ‡ซ', '๐Ÿ‡ต๐Ÿ‡ฌ', '๐Ÿ‡ต๐Ÿ‡ญ', '๐Ÿ‡ต๐Ÿ‡ฐ', '๐Ÿ‡ต๐Ÿ‡ฑ', '๐Ÿ‡ต๐Ÿ‡ฒ', '๐Ÿ‡ต๐Ÿ‡ณ', '๐Ÿ‡ต๐Ÿ‡ท', '๐Ÿ‡ต๐Ÿ‡ธ', '๐Ÿ‡ต๐Ÿ‡น', '๐Ÿ‡ต๐Ÿ‡ผ', '๐Ÿ‡ต๐Ÿ‡พ', '๐Ÿ‡ถ๐Ÿ‡ฆ', '๐Ÿ‡ท๐Ÿ‡ช', '๐Ÿ‡ท๐Ÿ‡ด', '๐Ÿ‡ท๐Ÿ‡ธ', '๐Ÿ‡ท๐Ÿ‡บ', '๐Ÿ‡ท๐Ÿ‡ผ', '๐Ÿ‡ธ๐Ÿ‡ฆ', '๐Ÿ‡ธ๐Ÿ‡ง', '๐Ÿ‡ธ๐Ÿ‡จ', '๐Ÿ‡ธ๐Ÿ‡ฉ', '๐Ÿ‡ธ๐Ÿ‡ช', '๐Ÿ‡ธ๐Ÿ‡ฌ', '๐Ÿ‡ธ๐Ÿ‡ญ', '๐Ÿ‡ธ๐Ÿ‡ฎ', '๐Ÿ‡ธ๐Ÿ‡ฏ', '๐Ÿ‡ธ๐Ÿ‡ฐ', '๐Ÿ‡ธ๐Ÿ‡ฑ', '๐Ÿ‡ธ๐Ÿ‡ฒ', '๐Ÿ‡ธ๐Ÿ‡ณ', '๐Ÿ‡ธ๐Ÿ‡ด', '๐Ÿ‡ธ๐Ÿ‡ท', '๐Ÿ‡ธ๐Ÿ‡ธ', '๐Ÿ‡ธ๐Ÿ‡น', '๐Ÿ‡ธ๐Ÿ‡ป', '๐Ÿ‡ธ๐Ÿ‡ฝ', '๐Ÿ‡ธ๐Ÿ‡พ', '๐Ÿ‡ธ๐Ÿ‡ฟ', '๐Ÿ‡น๐Ÿ‡จ', '๐Ÿ‡น๐Ÿ‡ฉ', '๐Ÿ‡น๐Ÿ‡ซ', '๐Ÿ‡น๐Ÿ‡ฌ', '๐Ÿ‡น๐Ÿ‡ญ', '๐Ÿ‡น๐Ÿ‡ฏ', '๐Ÿ‡น๐Ÿ‡ฐ', '๐Ÿ‡น๐Ÿ‡ฑ', '๐Ÿ‡น๐Ÿ‡ฒ', '๐Ÿ‡น๐Ÿ‡ณ', '๐Ÿ‡น๐Ÿ‡ด', '๐Ÿ‡น๐Ÿ‡ท', '๐Ÿ‡น๐Ÿ‡น', '๐Ÿ‡น๐Ÿ‡ป', '๐Ÿ‡น๐Ÿ‡ผ', '๐Ÿ‡น๐Ÿ‡ฟ', '๐Ÿ‡บ๐Ÿ‡ฆ', '๐Ÿ‡บ๐Ÿ‡ฌ', '๐Ÿ‡บ๐Ÿ‡ฒ', '๐Ÿ‡บ๐Ÿ‡ณ', '๐Ÿ‡บ๐Ÿ‡ธ', '๐Ÿ‡บ๐Ÿ‡พ', '๐Ÿ‡บ๐Ÿ‡ฟ', '๐Ÿ‡ป๐Ÿ‡ฆ', '๐Ÿ‡ป๐Ÿ‡จ', '๐Ÿ‡ป๐Ÿ‡ช', '๐Ÿ‡ป๐Ÿ‡ฌ', '๐Ÿ‡ป๐Ÿ‡ฎ', '๐Ÿ‡ป๐Ÿ‡ณ', '๐Ÿ‡ป๐Ÿ‡บ', '๐Ÿ‡ผ๐Ÿ‡ซ', '๐Ÿ‡ผ๐Ÿ‡ธ', '๐Ÿ‡ฝ๐Ÿ‡ฐ', '๐Ÿ‡พ๐Ÿ‡ช', '๐Ÿ‡พ๐Ÿ‡น', '๐Ÿ‡ฟ๐Ÿ‡ฆ', '๐Ÿ‡ฟ๐Ÿ‡ฒ', '๐Ÿ‡ฟ๐Ÿ‡ผ']
    };

    // Emoji to colon format mapping
    const emojiToColon = {
        '๐Ÿ˜€': ':grinning_face:',
        '๐Ÿ˜ƒ': ':grinning_face_with_big_eyes:',
        '๐Ÿ˜„': ':grinning_face_with_smiling_eyes:',
        '๐Ÿ˜': ':beaming_face_with_smiling_eyes:',
        '๐Ÿ˜†': ':grinning_squinting_face:',
        '๐Ÿ˜…': ':grinning_face_with_sweat:',
        '๐Ÿ˜‚': ':face_with_tears_of_joy:',
        '๐Ÿคฃ': ':rolling_on_the_floor_laughing:',
        '๐Ÿ˜Š': ':smiling_face_with_smiling_eyes:',
        '๐Ÿ˜‡': ':smiling_face_with_halo:',
        '๐Ÿ™‚': ':slightly_smiling_face:',
        '๐Ÿ™ƒ': ':upside-down_face:',
        '๐Ÿ˜‰': ':winking_face:',
        '๐Ÿ˜Œ': ':relieved_face:',
        '๐Ÿ˜': ':smiling_face_with_heart-eyes:',
        '๐Ÿฅฐ': ':smiling_face_with_hearts:',
        '๐Ÿ˜˜': ':face_blowing_a_kiss:',
        '๐Ÿ˜—': ':kissing_face:',
        '๐Ÿ˜™': ':kissing_face_with_smiling_eyes:',
        '๐Ÿ˜š': ':kissing_face_with_closed_eyes:',
        '๐Ÿ˜‹': ':face_savoring_food:',
        '๐Ÿ˜›': ':face_with_tongue:',
        '๐Ÿ˜': ':squinting_face_with_tongue:',
        '๐Ÿ˜œ': ':winking_face_with_tongue:',
        '๐Ÿคช': ':zany_face:',
        '๐Ÿคจ': ':face_with_raised_eyebrow:',
        '๐Ÿง': ':face_with_monocle:',
        '๐Ÿค“': ':nerd_face:',
        '๐Ÿ˜Ž': ':smiling_face_with_sunglasses:',
        '๐Ÿคฉ': ':star-struck:',
        '๐Ÿฅณ': ':partying_face:',
        '๐Ÿ˜': ':smirking_face:',
        '๐Ÿ˜’': ':unamused_face:',
        '๐Ÿ˜ž': ':disappointed_face:',
        '๐Ÿ˜”': ':pensive_face:',
        '๐Ÿ˜Ÿ': '๐Ÿ˜Ÿ',
        '๐Ÿ˜•': ':confused_face:',
        '๐Ÿ™': ':slightly_frowning_face:',
        'โ˜น๏ธ': ':frowning_face:',
        '๐Ÿ˜ฃ': ':persevering_face:',
        '๐Ÿ˜–': ':confounded_face:',
        '๐Ÿ˜ซ': ':tired_face:',
        '๐Ÿ˜ฉ': ':weary_face:',
        '๐Ÿฅบ': ':pleading_face:',
        '๐Ÿ˜ข': ':crying_face:',
        '๐Ÿ˜ญ': ':loudly_crying_face:',
        '๐Ÿ˜ค': ':face_with_steam_from_nose:',
        '๐Ÿ˜ ': ':angry_face:',
        '๐Ÿ˜ก': ':pouting_face:',
        '๐Ÿคฌ': ':face_with_symbols_on_mouth:',
        '๐Ÿคฏ': ':exploding_head:',
        '๐Ÿ˜ณ': ':flushed_face:',
        '๐Ÿฅต': ':hot_face:',
        '๐Ÿฅถ': ':cold_face:',
        '๐Ÿ˜ฑ': ':face_screaming_in_fear:',
        '๐Ÿ˜จ': ':fearful_face:',
        '๐Ÿ˜ฐ': ':anxious_face_with_sweat:',
        '๐Ÿ˜ฅ': ':sad_but_relieved_face:',
        '๐Ÿ˜“': ':downcast_face_with_sweat:',
        '๐Ÿค—': ':hugging_face:',
        '๐Ÿค”': ':thinking_face:',
        '๐Ÿคญ': ':face_with_hand_over_mouth:',
        '๐Ÿคซ': ':shushing_face:',
        '๐Ÿคฅ': ':lying_face:',
        '๐Ÿ˜ถ': ':neutral_face:',
        '๐Ÿ˜': ':expressionless_face:',
        '๐Ÿ˜‘': ':face_without_mouth:',
        '๐Ÿ˜ฌ': ':grimacing_face:',
        '๐Ÿ™„': ':face_with_rolling_eyes:',
        '๐Ÿ˜ฏ': ':hushed_face:',
        '๐Ÿ˜ฆ': ':frowning_face_with_open_mouth:',
        '๐Ÿ˜ง': ':anguished_face:',
        '๐Ÿ˜ฎ': ':face_with_open_mouth:',
        '๐Ÿ˜ฒ': ':astonished_face:',
        '๐Ÿฅฑ': ':yawning_face:',
        '๐Ÿ˜ด': ':sleeping_face:',
        '๐Ÿคค': ':drooling_face:',
        '๐Ÿ˜ช': ':sleepy_face:',
        '๐Ÿ˜ต': ':dizzy_face:',
        '๐Ÿค': ':zipper-mouth_face:',
        '๐Ÿฅด': ':nauseated_face:',
        '๐Ÿคข': ':face_vomiting:',
        '๐Ÿคฎ': ':vomiting_face:',
        '๐Ÿคง': ':sneezing_face:',
        '๐Ÿ˜ท': ':face_with_medical_mask:',
        '๐Ÿค’': ':face_with_thermometer:',
        '๐Ÿค•': ':face_with_head-bandage:',
        '๐Ÿค‘': ':money-mouth_face:',
        '๐Ÿค ': ':cowboy_hat_face:'
    };

    // Get DOM elements
    const quantitySlider = document.getElementById('quantity');
    const quantityValue = document.getElementById('quantity-value');
    const formatSelect = document.getElementById('format');
    const animationSelect = document.getElementById('animation');
    const generateBtn = document.getElementById('generate-btn');
    const spinBtn = document.getElementById('spin-btn');
    const emojiWheel = document.getElementById('emoji-wheel');
    const emojiResults = document.getElementById('emoji-results');
    const copyBtn = document.getElementById('copy-btn');
    const saveBtn = document.getElementById('save-btn');
    const shareBtn = document.getElementById('share-btn');
    const exportTxtBtn = document.getElementById('export-txt');
    const exportCsvBtn = document.getElementById('export-csv');
    const exportJsonBtn = document.getElementById('export-json');
    const historyList = document.getElementById('history-list');
    const favoritesList = document.getElementById('favorites-list');
    const toast = document.getElementById('toast');
    const themeToggle = document.getElementById('theme-toggle');

    // State variables
    let isSpinning = false;
    let currentEmojis = [];
    let history = JSON.parse(localStorage.getItem('emojiHistory')) || [];
    let favorites = JSON.parse(localStorage.getItem('emojiFavorites')) || [];

    // Initialize the app
    function init() {
        updateQuantityDisplay();
        createWheel();
        updateHistory();
        updateFavorites();

        // Event listeners
        quantitySlider.addEventListener('input', updateQuantityDisplay);
        generateBtn.addEventListener('click', generateEmojis);
        spinBtn.addEventListener('click', spinWheel);
        copyBtn.addEventListener('click', copyToClipboard);
        saveBtn.addEventListener('click', saveToFavorites);
        shareBtn.addEventListener('click', shareEmojis);
        exportTxtBtn.addEventListener('click', () => exportEmojis('txt'));
        exportCsvBtn.addEventListener('click', () => exportEmojis('csv'));
        exportJsonBtn.addEventListener('click', () => exportEmojis('json'));
        themeToggle.addEventListener('click', toggleTheme);

        // Category checkboxes
        const checkboxes = document.querySelectorAll('.checkbox-group input');
        checkboxes.forEach(checkbox => {
            checkbox.addEventListener('change', createWheel);
        });

        // Check for dark mode preference
        if (localStorage.getItem('theme') === 'dark' || 
            (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
            document.documentElement.setAttribute('data-theme', 'dark');
            themeToggle.innerHTML = '<i class="fas fa-sun"></i>';
        }
    }

    // Update quantity display
    function updateQuantityDisplay() {
        quantityValue.textContent = quantitySlider.value;
    }

    // Create the emoji wheel
    function createWheel() {
        const selectedCategories = [];
        const checkboxes = document.querySelectorAll('.checkbox-group input:checked');

        checkboxes.forEach(checkbox => {
            selectedCategories.push(checkbox.id);
        });

        let allEmojis = [];
        selectedCategories.forEach(category => {
            if (emojiData[category]) {
                allEmojis = [...allEmojis, ...emojiData[category]];
            }
        });

        // Remove duplicates
        allEmojis = [...new Set(allEmojis)];

        // Clear the wheel
        emojiWheel.innerHTML = '';

        if (allEmojis.length === 0) {
            emojiWheel.innerHTML = '<div style="display: flex; align-items: center; justify-content: center; height: 100%; font-size: 1.2rem;">Select at least one category</div>';
            return;
        }

        // Create wheel segments
        const segmentAngle = 360 / allEmojis.length;
        const colors = ['#FF6384', '#36A2EB', '#FFCE56', '#4BC0C0', '#9966FF', '#FF9F40', '#8AC926', '#1982C4', '#6A4C93', '#F15BB5'];

        allEmojis.forEach((emoji, index) => {
            const segment = document.createElement('div');
            segment.className = 'wheel-segment';
            segment.style.transform = `rotate(${index * segmentAngle}deg)`;
            segment.style.clipPath = `polygon(50% 50%, 50% 0%, ${50 + 50 * Math.tan((segmentAngle * Math.PI) / 180)}% 0%)`;
            segment.style.backgroundColor = colors[index % colors.length];
            segment.innerHTML = `<div style="position: absolute; top: 20%; left: 50%; transform: translateX(-50%) rotate(${segmentAngle / 2}deg); font-size: 1.5rem;">${emoji}</div>`;
            emojiWheel.appendChild(segment);
        });

        // Store emojis for spinning
        emojiWheel.dataset.emojis = JSON.stringify(allEmojis);
    }

    // Generate emojis without spinning the wheel
    function generateEmojis() {
        const quantity = parseInt(quantitySlider.value);
        const format = formatSelect.value;
        const selectedCategories = [];
        const checkboxes = document.querySelectorAll('.checkbox-group input:checked');

        checkboxes.forEach(checkbox => {
            selectedCategories.push(checkbox.id);
        });

        let allEmojis = [];
        selectedCategories.forEach(category => {
            if (emojiData[category]) {
                allEmojis = [...allEmojis, ...emojiData[category]];
            }
        });

        // Remove duplicates
        allEmojis = [...new Set(allEmojis)];

        if (allEmojis.length === 0) {
            showToast('Please select at least one emoji category');
            return;
        }

        // Generate random emojis
        currentEmojis = [];
        for (let i = 0; i < quantity; i++) {
            const randomIndex = Math.floor(Math.random() * allEmojis.length);
            const emoji = allEmojis[randomIndex];
            // Ensure we don't add blank/undefined emojis
            if (emoji && emoji.trim() !== '') {
                currentEmojis.push(emoji);
            }
        }

        // If we still don't have enough emojis (due to filtering out blanks), add more
        while (currentEmojis.length < quantity && allEmojis.length > 0) {
            const randomIndex = Math.floor(Math.random() * allEmojis.length);
            const emoji = allEmojis[randomIndex];
            if (emoji && emoji.trim() !== '' && !currentEmojis.includes(emoji)) {
                currentEmojis.push(emoji);
            }
        }

        displayEmojis(currentEmojis, format);
        addToHistory(currentEmojis);
    }

    // Spin the wheel
    function spinWheel() {
        if (isSpinning) return;

        const emojis = JSON.parse(emojiWheel.dataset.emojis || '[]');
        if (emojis.length === 0) {
            showToast('Please select at least one emoji category');
            return;
        }

        isSpinning = true;
        spinBtn.disabled = true;

        // Get the quantity of emojis to generate
        const quantity = parseInt(quantitySlider.value);

        // Random spin amount (multiple full rotations plus random segment)
        const minSpins = 5;
        const maxSpins = 10;
        const spins = Math.floor(Math.random() * (maxSpins - minSpins + 1)) + minSpins;
        const segmentAngle = 360 / emojis.length;

        // Generate multiple random segments
        const randomSegments = [];
        for (let i = 0; i < quantity; i++) {
            randomSegments.push(Math.floor(Math.random() * emojis.length));
        }

        // Use the first random segment for the wheel spin
        const finalRotation = spins * 360 + (randomSegments[0] * segmentAngle);

        // Apply animation
        const animationDuration = animationSelect.value === 'fast' ? 2 : 
                                animationSelect.value === 'medium' ? 4 : 6;

        emojiWheel.style.transition = `transform ${animationDuration}s cubic-bezier(0.2, 0.8, 0.2, 1)`;
        emojiWheel.style.transform = `rotate(${finalRotation}deg)`;

        // Handle animation end
        setTimeout(() => {
            isSpinning = false;
            spinBtn.disabled = false;

            // Get the selected emojis
            const format = formatSelect.value;
            currentEmojis = [];

            // Add the first emoji from the wheel spin
            const firstEmoji = emojis[randomSegments[0]];
            if (firstEmoji && firstEmoji.trim() !== '') {
                currentEmojis.push(firstEmoji);
            }

            // Generate the remaining emojis
            for (let i = 1; i < quantity; i++) {
                const randomIndex = Math.floor(Math.random() * emojis.length);
                const emoji = emojis[randomIndex];
                if (emoji && emoji.trim() !== '') {
                    currentEmojis.push(emoji);
                }
            }

            // Display the result
            displayEmojis(currentEmojis, format);
            addToHistory(currentEmojis);

            // Reset transition for next spin
            emojiWheel.style.transition = 'none';
            const currentRotation = finalRotation % 360;
            emojiWheel.style.transform = `rotate(${currentRotation}deg)`;

            // Force reflow to apply the reset
            void emojiWheel.offsetWidth;

            // Restore transition
            emojiWheel.style.transition = '';
        }, animationDuration * 1000);
    }

    // Display emojis in the results area
    function displayEmojis(emojis, format) {
        emojiResults.innerHTML = '';

        if (emojis.length === 0) {
            emojiResults.innerHTML = '<div style="width: 100%; text-align: center; color: var(--gray-color);">No emojis generated</div>';
            return;
        }

        emojis.forEach((emoji, index) => {
            if (!emoji || emoji.trim() === '') return;

            const emojiItem = document.createElement('div');
            emojiItem.className = 'emoji-item';

            // Format the emoji based on selection
            let displayEmoji = emoji;
            if (format === 'colon' && emojiToColon[emoji]) {
                displayEmoji = emojiToColon[emoji];
            } else if (format === 'html') {
                displayEmoji = `&#${emoji.codePointAt(0)};`;
            } else if (format === 'unicode') {
                displayEmoji = `U+${emoji.codePointAt(0).toString(16).toUpperCase()}`;
            }

            emojiItem.textContent = displayEmoji;
            emojiItem.style.animationDelay = `${index * 0.1}s`;
            emojiResults.appendChild(emojiItem);
        });
    }

    // Copy emojis to clipboard
    function copyToClipboard() {
        if (currentEmojis.length === 0) {
            showToast('No emojis to copy');
            return;
        }

        const format = formatSelect.value;
        let textToCopy = '';

        currentEmojis.forEach(emoji => {
            if (!emoji || emoji.trim() === '') return;

            if (format === 'colon' && emojiToColon[emoji]) {
                textToCopy += emojiToColon[emoji] + ' ';
            } else if (format === 'html') {
                textToCopy += `&#${emoji.codePointAt(0)}; `;
            } else if (format === 'unicode') {
                textToCopy += `U+${emoji.codePointAt(0).toString(16).toUpperCase()} `;
            } else {
                textToCopy += emoji + ' ';
            }
        });

        navigator.clipboard.writeText(textToCopy.trim()).then(() => {
            showToast('Emojis copied to clipboard!');
        }).catch(err => {
            console.error('Failed to copy: ', err);
            showToast('Failed to copy emojis');
        });
    }

    // Save emojis to favorites
    function saveToFavorites() {
        if (currentEmojis.length === 0) {
            showToast('No emojis to save');
            return;
        }

        // Filter out any blank/undefined emojis
        const validEmojis = currentEmojis.filter(emoji => emoji && emoji.trim() !== '');

        if (validEmojis.length === 0) {
            showToast('No valid emojis to save');
            return;
        }

        const format = formatSelect.value;
        const favoriteItem = {
            emojis: [...validEmojis],
            format: format,
            timestamp: new Date().toISOString()
        };

        favorites.unshift(favoriteItem);

        // Limit favorites to 20 items
        if (favorites.length > 20) {
            favorites = favorites.slice(0, 20);
        }

        localStorage.setItem('emojiFavorites', JSON.stringify(favorites));
        updateFavorites();
        showToast('Saved to favorites!');
    }

    // Share emojis
    function shareEmojis() {
        if (currentEmojis.length === 0) {
            showToast('No emojis to share');
            return;
        }

        // Filter out any blank/undefined emojis
        const validEmojis = currentEmojis.filter(emoji => emoji && emoji.trim() !== '');

        if (validEmojis.length === 0) {
            showToast('No valid emojis to share');
            return;
        }

        const format = formatSelect.value;
        let shareText = 'Check out these emojis I generated:\n\n';

        validEmojis.forEach(emoji => {
            if (format === 'colon' && emojiToColon[emoji]) {
                shareText += emojiToColon[emoji] + ' ';
            } else if (format === 'html') {
                shareText += `&#${emoji.codePointAt(0)}; `;
            } else if (format === 'unicode') {
                shareText += `U+${emoji.codePointAt(0).toString(16).toUpperCase()} `;
            } else {
                shareText += emoji + ' ';
            }
        });

        shareText += '\n\nGenerated with the Random Emoji Generator Wheel at eRandomGenerator.com';

        if (navigator.share) {
            navigator.share({
                title: 'Random Emoji Generator',
                text: shareText
            }).catch(err => {
                console.error('Error sharing:', err);
                fallbackShare(shareText);
            });
        } else {
            fallbackShare(shareText);
        }
    }

    // Fallback share method
    function fallbackShare(text) {
        const shareUrl = `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}`;
        window.open(shareUrl, '_blank');
    }

    // Export emojis
    function exportEmojis(format) {
        if (currentEmojis.length === 0) {
            showToast('No emojis to export');
            return;
        }

        // Filter out any blank/undefined emojis
        const validEmojis = currentEmojis.filter(emoji => emoji && emoji.trim() !== '');

        if (validEmojis.length === 0) {
            showToast('No valid emojis to export');
            return;
        }

        let content = '';
        let filename = 'emojis';
        let mimeType = 'text/plain';

        if (format === 'txt') {
            filename += '.txt';
            validEmojis.forEach(emoji => {
                content += emoji + '\n';
            });
        } else if (format === 'csv') {
            filename += '.csv';
            mimeType = 'text/csv';
            content = 'Emoji,Unicode,Colon Format\n';
            validEmojis.forEach(emoji => {
                const unicode = `U+${emoji.codePointAt(0).toString(16).toUpperCase()}`;
                const colonFormat = emojiToColon[emoji] || '';
                content += `${emoji},${unicode},"${colonFormat}"\n`;
            });
        } else if (format === 'json') {
            filename += '.json';
            mimeType = 'application/json';
            const emojiData = validEmojis.map(emoji => {
                return {
                    emoji: emoji,
                    unicode: `U+${emoji.codePointAt(0).toString(16).toUpperCase()}`,
                    colonFormat: emojiToColon[emoji] || '',
                    htmlEntity: `&#${emoji.codePointAt(0)};`
                };
            });
            content = JSON.stringify(emojiData, null, 2);
        }

        const blob = new Blob([content], { type: mimeType });
        const url = URL.createObjectURL(blob);
        const a = document.createElement('a');
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        document.body.removeChild(a);
        URL.revokeObjectURL(url);

        showToast(`Emojis exported as ${format.toUpperCase()} file`);
    }

    // Add to history
    function addToHistory(emojis) {
        // Filter out any blank/undefined emojis
        const validEmojis = emojis.filter(emoji => emoji && emoji.trim() !== '');

        if (validEmojis.length === 0) {
            return;
        }

        const format = formatSelect.value;
        const historyItem = {
            emojis: [...validEmojis],
            format: format,
            timestamp: new Date().toISOString()
        };

        // Add to beginning of history
        history.unshift(historyItem);

        // Remove duplicates
        history = history.filter((item, index, self) =>
            index === self.findIndex((t) => (
                JSON.stringify(t.emojis) === JSON.stringify(item.emojis) && t.format === item.format
            ))
        );

        // Limit history to 20 items
        if (history.length > 20) {
            history = history.slice(0, 20);
        }

        localStorage.setItem('emojiHistory', JSON.stringify(history));
        updateHistory();
    }

    // Update history display
    function updateHistory() {
        historyList.innerHTML = '';

        if (history.length === 0) {
            historyList.innerHTML = '<div style="width: 100%; text-align: center; color: var(--gray-color);">No history yet</div>';
            return;
        }

        history.forEach((item, index) => {
            const historyItem = document.createElement('div');
            historyItem.className = 'history-item';
            historyItem.textContent = item.emojis.join(' ');
            historyItem.title = `Generated: ${new Date(item.timestamp).toLocaleString()}`;
            historyItem.addEventListener('click', () => {
                currentEmojis = [...item.emojis];
                formatSelect.value = item.format;
                displayEmojis(currentEmojis, item.format);
            });
            historyList.appendChild(historyItem);
        });
    }

    // Update favorites display
    function updateFavorites() {
        favoritesList.innerHTML = '';

        if (favorites.length === 0) {
            favoritesList.innerHTML = '<div style="width: 100%; text-align: center; color: var(--gray-color);">No favorites yet</div>';
            return;
        }

        favorites.forEach((item, index) => {
            const favoriteItem = document.createElement('div');
            favoriteItem.className = 'history-item';
            favoriteItem.textContent = item.emojis.join(' ');
            favoriteItem.title = `Saved: ${new Date(item.timestamp).toLocaleString()}`;
            favoriteItem.addEventListener('click', () => {
                currentEmojis = [...item.emojis];
                formatSelect.value = item.format;
                displayEmojis(currentEmojis, item.format);
            });

            // Add remove button
            const removeBtn = document.createElement('span');
            removeBtn.innerHTML = ' ร—';
            removeBtn.style.color = 'var(--danger-color)';
            removeBtn.style.cursor = 'pointer';
            removeBtn.addEventListener('click', (e) => {
                e.stopPropagation();
                favorites.splice(index, 1);
                localStorage.setItem('emojiFavorites', JSON.stringify(favorites));
                updateFavorites();
                showToast('Removed from favorites');
            });

            favoriteItem.appendChild(removeBtn);
            favoritesList.appendChild(favoriteItem);
        });
    }

    // Show toast notification
    function showToast(message) {
        toast.textContent = message;
        toast.classList.add('show');

        setTimeout(() => {
            toast.classList.remove('show');
        }, 3000);
    }

    // Toggle theme
    function toggleTheme() {
        const currentTheme = document.documentElement.getAttribute('data-theme');
        const newTheme = currentTheme === 'dark' ? 'light' : 'dark';

        document.documentElement.setAttribute('data-theme', newTheme);
        localStorage.setItem('theme', newTheme);

        if (newTheme === 'dark') {
            themeToggle.innerHTML = '<i class="fas fa-sun"></i>';
        } else {
            themeToggle.innerHTML = '<i class="fas fa-moon"></i>';
        }
    }

    // Initialize the app when DOM is loaded
    document.addEventListener('DOMContentLoaded', init);
</script>
Random Emoji Generator Wheel – Create Fun Emoji Combinations Instantly

Random Emoji Generator Wheel

Create fun emoji combinations instantly with our interactive wheel spinner. Customize, save, and share your emoji creations with just a few clicks!

Generate Emojis Now

Customize Your Emojis

Recent Generations

Generated Emojis

Saved Favorites

Random Emoji Generator: Create Fun and Unique Emoji Combinations

Emojis have become an integral part of our digital communication, adding emotion, personality, and context to our messages. Whether you’re looking to spice up your social media posts, create engaging content, or simply have fun with digital expressions, our random emoji generator is the perfect tool for you. This innovative emoji wheel spinner allows you to generate random emoji combinations with just a click, offering endless possibilities for creative expression.

Our emoji creator tool is designed with user experience in mind, providing a seamless interface that makes generating random emojis both fun and functional. Unlike other random emoji generators that simply display a list of emojis, our interactive wheel adds an element of excitement and surprise to the process. With the ability to customize categories, quantity, and output format, you have complete control over your emoji combinations.

The Benefits of Using a Random Emoji Generator

There are numerous advantages to using our emoji wheel spinner for your digital communication needs:

  • Creativity Enhancement: Break out of your emoji rut by discovering new and unexpected combinations that you might not have considered otherwise.
  • Time Efficiency: Quickly generate multiple emoji options without scrolling through endless lists, saving you valuable time.
  • Content Creation: Content creators, social media managers, and marketers can use our random emoji generator to add visual interest to posts and increase engagement.
  • Language Learning: Language learners can use emojis as visual aids to associate with vocabulary words or concepts.
  • Fun and Entertainment: Simply spinning the wheel can be an enjoyable activity, perfect for breaking the ice or starting conversations.

Practical Use Cases for Random Emoji Generation

Our emoji creator tool has a wide range of applications across various contexts:

  • Social Media Content: Enhance your posts, stories, and comments with unique emoji combinations that stand out in crowded feeds.
  • Marketing Campaigns: Create eye-catching promotional materials with emoji elements that resonate with your target audience.
  • Educational Materials: Teachers and educators can use emojis to make learning materials more engaging and memorable for students.
  • Team Building: Use the emoji wheel as a fun icebreaker activity in team meetings or virtual gatherings.
  • Personal Expression: Add personality to your messages, emails, and digital communications with carefully selected emoji combinations.

How to Use Our Random Emoji Generator Wheel

Using our emoji wheel spinner is simple and intuitive, even for first-time users. Follow these steps to create your own unique emoji combinations:

  1. Customize Your Settings: Use the control panel to select the number of emojis you want to generate, choose your preferred output format, and select which emoji categories to include.
  2. Spin the Wheel: Click the “Spin the Wheel” button to start the animation. The wheel will spin and gradually slow down before landing on a random emoji.
  3. Generate Multiple Emojis: For multiple emojis, use the “Generate Emojis” button to create a set based on your preferences without spinning the wheel.
  4. Copy, Save, or Share: Once you have your desired emojis, use the action buttons to copy them to your clipboard, save them to your favorites, or share them on social media.
  5. Export Your Results: If you need your emojis in a specific format for further use, utilize our export options to download them as TXT, CSV, or JSON files.

Advanced Features for Power Users

Our random emoji generator includes several advanced features that set it apart from basic emoji tools:

  • Customizable Output Formats: Choose from emoji-only display, colon format for coding, HTML entities for web development, or Unicode codes for technical applications.
  • Category Filtering: Select specific emoji categories to focus on, such as smileys, animals, food, activities, travel, objects, symbols, or flags.
  • History Tracking: Keep track of your recent emoji generations with our built-in history feature, allowing you to revisit and reuse previous combinations.
  • Favorites System: Save your favorite emoji combinations for quick access later, perfect for emojis you use frequently or particularly enjoy.
  • Export Functionality: Export your generated emojis in multiple formats, making it easy to integrate them into various projects and workflows.

Whether you’re a casual user looking to add some fun to your messages or a professional seeking efficient ways to incorporate emojis into your work, our random emoji generator wheel provides the perfect balance of simplicity and functionality. With its intuitive interface, customizable options, and advanced features, it’s the ultimate tool for all your emoji generation needs.

Start exploring the world of emojis in a whole new way with our innovative emoji wheel spinner. Spin the wheel, discover new combinations, and let your creativity flow with endless possibilities at your fingertips!

Frequently Asked Questions

How does the Random Emoji Generator Wheel work?

Our Random Emoji Generator Wheel uses a sophisticated algorithm to randomly select emojis based on your chosen categories and preferences. When you spin the wheel, it applies physics-based animation to create a realistic spinning effect before gradually slowing down and landing on a random emoji. The “Generate Emojis” button creates multiple emojis at once without the spinning animation, perfect for when you need several emojis quickly.

Can I save my favorite emoji combinations for later use?

Yes! Our tool includes a favorites feature that allows you to save your preferred emoji combinations. Simply click the “Save” button after generating emojis, and they’ll be stored in your browser’s local storage. This means your favorites will be available even after you close the browser, though they will only be accessible on the same device and browser where you saved them.

What output formats are available for the generated emojis?

Our Random Emoji Generator offers four different output formats to suit various needs: Emoji Only (displays the actual emoji characters), Colon Format (shows emojis as ๐Ÿ™‚ which is useful for coding and markdown), HTML Entity (provides the HTML code for web development), and Unicode Code (displays the technical Unicode value of each emoji). You can easily switch between these formats using the dropdown menu in the control panel.

Is there a limit to how many emojis I can generate at once?

You can generate between 1 and 20 emojis at a single time using our tool. This range was carefully chosen to balance usability with performance. Generating too many emojis at once could overwhelm the interface and make it difficult to work with the results, while too few might not meet your needs. If you require more than 20 emojis, you can simply generate multiple batches and combine them.

How does the export functionality work, and what can I do with the exported files?

Our export functionality allows you to download your generated emojis in three different formats: TXT (plain text), CSV (comma-separated values), and JSON (JavaScript Object Notation). The TXT format is perfect for simple copying and pasting into documents or messages. The CSV format is ideal for importing into spreadsheet applications like Excel or Google Sheets for further analysis or organization. The JSON format is designed for developers who want to integrate the emoji data into applications or websites programmatically.

Is my data private when using the Random Emoji Generator?

Absolutely. Our Random Emoji Generator operates entirely within your browser using client-side JavaScript. This means that no data about your emoji generations, favorites, or settings is sent to our servers or any third parties. Your privacy is important to us, and we’ve designed the tool to ensure that all your activity remains local to your device. The only exception is if you choose to share your emojis on social media, in which case only the specific content you choose to share will be sent to the respective social media platform.

How does this tool compare to other emoji generators available online?

Our Random Emoji Generator Wheel stands out from other online emoji tools in several ways. First, the interactive wheel adds a fun, gamified element that makes generating emojis more engaging. Second, our tool offers more customization options, including category filtering, multiple output formats, and export functionality. Third, we provide features like history tracking and favorites that aren’t commonly found in basic emoji generators. Finally, our tool is completely free to use, contains no advertisements, and respects your privacy by not collecting or storing any personal data.

All Tools

Random Number Generator

Generate random numbers within custom ranges.

Try Now

Random List Generator

Create randomized lists from your input items.

Try Now

Random Color Generator

Generate random colors in various formats.

Try Now

Random Text Generator

Create random text for placeholder content.

Try Now

Random Hashtag Generator

Generate trending hashtags for social media.

Try Now

Random Quote Generator

Get inspired with random quotes from famous people.

Try Now

Random Image Generator

Generate placeholder images for your projects.

Try Now

Random Name Generator

Generate random names for characters or profiles.

Try Now

Random Address Generator

Create random addresses for testing purposes.

Try Now

Random Email Generator

Generate random email addresses for testing.

Try Now

Random Password Generator

Create secure random passwords.

Try Now

Random Date Generator

Generate random dates within custom ranges.

Try Now

Leave a Reply

Your email address will not be published. Required fields are marked *