Skip to content
Decisions Free · Private

What Should I Eat — Random Meal Picker

Random meal from your saved list.

Built and maintained by Paul Clark, Redmoon Software · Last checked

The What Should I Eat meal picker ends the nightly "I don't know, what do you want?" by choosing dinner from a list you save once. Tag meals as quick, healthy, or takeout and filter at pick time, and "Avoid last N days" (seven by default) keeps anything it picked recently out of the draw. It's a simple fix for decision fatigue at dinnertime.

Save. Add your meals one per line, with optional #tags — the list saves automatically in this browser.

0 items

Click What's for dinner? to see a result.

Options
Recent results
  • No history yet.

How it works

  1. Save. Add your meals one per line, with optional #tags — the list saves automatically in this browser.
  2. Filter. Optionally choose a tag or set "Avoid last N days" in the Options.
  3. Pick. Click What's for dinner? to get a meal.
  4. Re-roll. Not feeling it? Click again for another suggestion.

About the What Should I Eat — Random Meal Picker

Tags are the whole point

Write each meal on its own line and add tags with a hash: Chicken curry #quick #spicy. Tags are what make this more than a list shuffler — they let you say "something quick, but not spicy" and draw only from what qualifies.

The two filters behave differently and the difference matters. Include requires every tag you list, so entering "quick, vegetarian" matches only meals tagged both. Exclude rejects a meal if it has any of the tags you list. Include is an AND, exclude is an OR, and that asymmetry is what most people get wrong on their first attempt.

Tags are matched case-insensitively, and the tag text is stripped from the meal name in the result, so your list stays readable.

The "avoid recent" window

The tool records every meal it picks, and Avoid last N days excludes anything drawn within that many days. It starts at seven, which means you will not see the same meal twice in a week, which is the single feature that makes a meal picker survive contact with real life — without it, a fourteen-meal rotation still manages to suggest the same thing three nights running.

The record lives in this browser and is keyed by the meal name with tags removed. Renaming a meal, or adding a tag in a way that changes the name portion, makes it look like a new meal and it becomes eligible again immediately. Clear history wipes this record too, so every meal becomes eligible again; set the window to 0 to ignore it without deleting it.

When nothing matches

If your filters exclude everything, the tool tells you rather than quietly widening the search. That is worth appreciating — a picker that silently falls back to the full list when a filter matches nothing is indistinguishable from one that is working, and you would never learn that your tag was misspelled.

So an error here almost always means one of three things: a typo in a tag, an include list that no single meal satisfies in full, or an avoid-days window that has eaten your whole rotation. All three are fixable, and all three are worth knowing about rather than being papered over.

Frequently asked questions

Does it track what we ate?

It remembers what it picked, and when, in your browser — it can't know whether you actually cooked it. "Avoid last N days" (seven by default, 0 to switch off) hides meals picked within that window, and Clear history wipes that record along with the history list.

How do tags work?

Add tags like #quick, #healthy, or #takeout after each meal, then type tags (without the #) into Include tag or Exclude tag. Separate several with commas: a meal must have every included tag and none of the excluded ones.

Is the choice actually random?

Yes. Among the eligible meals, the pick is made with the Web Crypto API, so it's unbiased and not always the same favorites.

Is my saved meal list private?

Yes. Your meals stay in your browser and are never uploaded to a server, so the picker also works offline.

Related randomizers

Further reading

Send feedback

Found a bug, want a feature, or just say hi? Send it our way.