What the Random Food Generator does
The Random Food Generator names one dish for you to eat, right now. You open the page and a dish is already there — emoji, name, cuisine, meal, diet, and one line describing what it is. You didn't press anything. That is the entire product.
A pick looks like this:
🍚 Jollof Rice — West African · Dinner · Vegan
Tomato rice worth arguing about
The pool is 306 dishes across 17 cuisines: American, Italian, Mexican, Chinese, Japanese, Indian, Thai, Korean, Mediterranean, Middle Eastern, French, Vietnamese, Spanish, Brazilian, Caribbean, German and West African. Each cuisine holds exactly 18 dishes, so no single one is more than 5.9% of the pool and you won't get four American dinners in a row.
Three dropdowns narrow it — meal, cuisine, diet — and a Count control asks for 1, 3 or 5 dishes at once. Pick another draws again. Copy puts the picks on your clipboard. Under the card, a line tells you how big the current pool is: Picking from 306 dishes. Below that, Recent picks keeps the last five names so you can compare what you've already seen. No account, no email, no saved pantry, nothing to cancel later.
Why "what should I eat" is the hard part
Deciding what to eat is the work. Cooking is easy by comparison, and ordering is easier still. What stalls a Tuesday evening — and sends people searching what should I eat at 6pm — is that you can name maybe six dishes from memory, four of them are what you ate last week, and none of them sound good right now. Recall is the bottleneck, not ability. Hand someone the name Chana Masala and they either want it or they don't — in about two seconds. Ask them "so what do you want?" and you lose ten minutes.
Randomness helps for a reason that has nothing to do with chance. A random dish isn't a command, it's a prompt. Half the time the answer is "not that" — and the instant you feel that, you've learned something about what you do want. The other half you shrug and go make it. Either outcome beats scrolling.
Now look at what most software does with this problem. Search what should I eat or random meal generator and the top results mostly want a relationship first. Meal-planning apps want an account before they'll name a single dish, then a pantry inventory, then a household size, then a weekly plan, then a monthly charge once the trial lapses. Recipe sites answer eventually — three screens below a childhood story and four ad slots. Wheel-spinner pages make you type the options in yourself, which means you have to already know the answers before the tool will pick one for you. That's the shape of it: the software makes you do the narrowing, then bills you for the part you did.
The Random Food Generator has no account because there is nothing to store. The dish list ships with the page and the picking happens in your browser, so nothing you choose is sent anywhere. You open it, you get a dish, you leave.
How the random food generator picks a dish
Filter first, then draw. The three dropdowns cut the 306 dishes down to a pool — Dinner plus Vegan leaves 25, Breakfast alone leaves 55 — and the draw happens inside whatever is left.
The randomness comes from crypto.getRandomValues, your browser's cryptographic random source, not Math.random(). That choice matters less here than it does for a password, but it costs nothing and removes a whole class of "this thing keeps giving me tacos" complaints.
A 32-bit random number doesn't divide evenly into 306 parts, and taking the remainder anyway would hand the first 256 dishes a slightly better chance than the rest. So the tool throws away the 256 leftover values and draws a new number instead — rejection sampling. It happens roughly once every 16.8 million draws, and it means every dish has exactly the same odds as every other.
Pressing Pick another passes the dish currently on screen back into the draw as an exclusion, so the next dish is always a different one. Ask for 3 or 5 and the same rule applies inside the round — you get distinct dishes, never the same name twice in one list.
There's no network call in any of this. All 306 dishes are bundled into the page, which is why the first dish appears the moment the page finishes loading rather than after a spinner.
Filtering by meal, cuisine and diet
Four controls, all optional. The defaults draw from everything.
| Control | Default | Options | What it does |
|---|---|---|---|
| Meal | Any | Breakfast, Lunch, Dinner, Snack, Dessert | Keeps dishes tagged for that meal |
| Cuisine | Any | 17 cuisines | Narrows to one kitchen, 18 dishes each |
| Diet | Any | Vegetarian, Vegan | Vegetarian includes vegan; vegan is vegan only |
| Count | 1 | 1, 3, 5 | How many distinct dishes to name at once |
Diet filtering is inclusive upward, which is the behavior you want at a real table: every vegan dish is also a vegetarian dish, so picking Vegetarian gives you both. Picking Vegan narrows to vegan only. Of the 306 dishes, 167 are vegetarian or better and 78 are vegan. If one person at the table is vegan, set Vegan and everyone can eat it.
Meal tags are honest rather than generous — a dish is tagged only for meals it actually suits, which is why Pho Bo is the one dish in the pool that answers breakfast, lunch and dinner, and Apple Pie only ever shows up as dessert. Here's how the pool splits:
| Meal | Dishes | Vegetarian or vegan | Vegan only |
|---|---|---|---|
| Breakfast | 55 | 43 | 21 |
| Lunch | 113 | 58 | 37 |
| Dinner | 150 | 47 | 25 |
| Snack | 78 | 53 | 26 |
| Dessert | 37 | 37 | 7 |
| Any | 306 | 167 | 78 |
Two things fall out of that table. Dinner is the deepest pool and the most carnivorous — only 47 of its 150 dishes are meat-free. And every dessert in the set is vegetarian, which is less a design decision than a fact about dessert.
Set Count to 3 when two of you are deciding and want something to vote on. A real draw with Meal set to Dinner and Diet set to Vegan, Count 3, from a pool of 25:
🍲 Fasolada — Mediterranean · Dinner
🥬 Garlic Bok Choy — Chinese · Dinner
🍜 Udon in Hot Broth — Japanese · Dinner
That block is exactly what Copy writes to your clipboard: one line per dish, formatted emoji name — Cuisine · Meal, newline separated, ready to paste into a group chat. Drop Count back to 1 afterwards and the first dish stays on screen — it doesn't re-roll on you.
What to do when the filters return nothing
Stack three filters and you can ask for a dish that doesn't exist. Twenty-three combinations of meal, cuisine and diet match nothing in the current set — there is no vegan Korean breakfast, no vegan American dinner, and no French snack at all, at any diet setting. When that happens you get a plain message — Nothing matches those filters. Loosen one and try again. — and the Pick another button switches off. You won't see an empty card or the word undefined. Changing one dropdown back to Any almost always fixes it.
The narrower problem is a pool of exactly one, and there are 44 of those. Korean plus Breakfast is Gyeranbap, every time. Thai plus Dinner plus Vegan is Thai Basil Eggplant, every time. In that case the no-repeat rule quietly stands down, because the alternative is a button that refuses to do anything. One dish is the honest answer when one dish is all there is.
Asking for more dishes than the pool holds doesn't pad the list with duplicates. Count 5 against a pool of 3 returns 3. The pool line under the card — Picking from 3 dishes. — tells you why before you wonder.
One more thing worth saying plainly: there are no recipes here, and that's deliberate. This tool names a dish. Bolting a recipe database onto it would turn a five-second decision into a browsing session, which is precisely the move the meal-planning apps make right before they ask for your email. Once you have a name, your search engine or your own cookbook will do better than anything we could bundle.
Related pickers and kitchen tools
The Random Food Generator settles one small decision, and small decisions go faster when something else makes them for you. If the choice is between named options you already have — three restaurants, four leftovers — the decision wheel spinner takes your list and spins it. For a longer list where order matters, the list randomizer shuffles the whole thing at once, and the random name picker draws one entry from whatever you paste in. When the question is genuinely binary — go out or stay in — the coin flip is still the fastest tool ever built.
Once a dish is chosen, two more come in handy. The recipe scaler rewrites quantities when you're cooking for six instead of four, and the cooking measurement converter handles the cups-to-grams problem that every recipe written on the other side of an ocean creates. All of them work the same way as this one: open, do the thing, leave.
Frequently asked questions
Why is a dish already picked when the page loads?
Because that's the point. You came to be handed an answer, not to configure one. Other tools for this make you act first — paste a list of foods, answer a five-question mood quiz, sit through a wheel animation. Here the dish is on screen as soon as the page finishes loading, and the filters are there if you want them. If the first one doesn't appeal, Pick another is one press away.
Is the pick actually random?
Yes, and evenly so. Picks come from crypto.getRandomValues — the same source password generators use — rather than Math.random(), and the 256 leftover values that would otherwise bias the result are discarded and redrawn. No dish gets even a fractional head start. Nothing is weighted, sponsored or promoted; a dish's odds depend only on how many other dishes are in your filtered pool.
Will it give me the same dish twice in a row?
No, as long as your filters leave more than one dish to pick from. Each press of Pick another excludes whatever is currently on screen. The single exception is a filter combination matching exactly one dish, where the no-repeat rule steps aside rather than looping forever looking for a second option that doesn't exist.
Can I get more than one suggestion at a time?
Set Count to 3 or 5. You get that many distinct dishes — never a repeat inside one round — which is what you want when two people are deciding and want to vote. If your filters leave fewer dishes than you asked for, you get everything that matches instead of padded duplicates. Dropping Count back to 1 keeps the first dish and clears the rest.
Does the vegetarian filter include vegan dishes?
Yes. Picking Vegetarian returns both vegetarian and vegan dishes, because every vegan dish is also vegetarian — 167 of the 306 qualify. Picking Vegan narrows to the 78 that are vegan outright. There's no meat-only filter, because nobody has ever needed to be talked into meat.
Do I need an account, and is it free?
No account, and yes. There's no sign-up, no email, no trial that expires, no plan to cancel. The dish list ships with the page and the picking runs in your browser, so nothing you choose leaves your device. Microapp pays for itself through memberships and ads rather than by gating a dropdown, and 10% of every dollar it earns goes to charity off the top, audited quarterly.
Is a random food generator the same as a "what to eat" wheel?
Similar idea, opposite starting point. A wheel is a food randomizer you have to load yourself: it needs your options before it can spin, so it only ever returns something you already thought of — useful for choosing between three restaurants you've shortlisted, useless when you're out of ideas. A random food generator arrives with 306 dishes already in it, which is the situation most people are actually in at 6pm. If you do have your own shortlist, the decision wheel spinner is the right tool for that job.