Tool
Dinner Decider
Filter by diet, effort, and budget first — then let the draw settle it.
Dinner Decider
23 options match. Each has a 1-in-23 chance.
Set what you can actually accommodate tonight — the diet everyone at the table needs, how long you are willing to stand at a hob, how much you want to spend, and whether ordering in counts — and then let the draw settle it from whatever survives.
The order matters and it is the whole design. Most decision tools draw first and let you reject the answer; this one narrows first and draws second, because an answer you were always going to veto has not decided anything.
The count of surviving options is shown before you press the button, so you can see exactly how much room the randomness has left. Sometimes it is twenty. Sometimes your filters have left three, and that is worth knowing before you pretend the machine chose.
How the Dinner Decider works — and why it's fair
Every option in the list carries four independent tags: hands-on minutes, a cost band from one to three, whether it is vegetarian, whether it is vegan, and whether it involves cooking at all. Your controls are a conjunctive filter over those tags — an option has to pass every active condition, not most of them — and what remains is the sample space for the draw.
The draw itself over that surviving set is the simplest thing on this site: one unbiased index, uniform across whatever is left, using crypto.getRandomValues with rejection sampling. There is no scoring, no ranking, no attempt to guess which of the survivors you would prefer. Every option that passed the filters is exactly as likely as every other.
That means the filters, not the randomness, are doing the interesting work. If seventeen options survive, each has a 1-in-17 chance and the result will genuinely surprise you. If three survive, each has a 1-in-3 chance and you are effectively rolling a d3 — still fair, but no longer a broad choice, and the tool tells you so rather than letting the button feel more decisive than it is.
This is a meaningfully different shape from the wheel or the name picker, where you supply the entire option set yourself. Here the corpus is fixed and curated, and your input is the constraint set. The consequence is worth stating plainly: the draw can only ever be as good as the list, and the list is a deliberately small, opinionated set of about twenty-five things people actually eat — not an exhaustive database.
When nothing survives, the tool says nothing survives. It does not quietly relax your strictest filter to produce a result, which is the failure mode that makes a constrained picker untrustworthy: an answer that violates a condition you set is worse than no answer, because you may not notice.
When the Dinner Decider is fair — and when it is not
What it does guarantee
- Every option that passes your filters has exactly the same chance, with no hidden preference for the ones near the top of the list.
- The filters are applied strictly. An option that fails any active condition cannot be drawn, ever, not even when the pool is nearly empty.
- The surviving count is shown before the draw, so the odds are never implied — they are stated.
What it does not
- It cannot represent your actual preferences. Two options you feel very differently about have identical odds, because the tool has no idea how you feel about either.
- The corpus is curated and finite. Anything not on the list has a zero percent chance, however much you would have enjoyed it.
- Repeated draws are independent. Getting the same suggestion twice in a row is ordinary, not a sign that the filters are stuck.
Two worked examples
Vegan, under 20 minutes, cheap, no takeaway
- Filters leave four options: dal with rice is excluded on time, fried rice and stir-fry survive on time but stir-fry fails the cost band at 2.
- Surviving pool: fried rice, soup and bread, burrito bowls, and a store-cupboard pasta.
- Each has a 25% chance. The tool prints "4 options match" before you draw.
Anything, up to 60 minutes, treat budget, takeaway allowed
- Almost nothing is filtered out — the pool sits at roughly twenty-three of twenty-six options.
- Each option holds about a 4.3% chance, so the result is genuinely unpredictable.
- This is the setting where the tool is most useful and least reassuring: it will suggest something you had not considered, which is the point.
The evenings this actually solves
The specific situation this is built for is the one where everyone at the table has a veto and nobody has a proposal. Filtering out the impossible first means the suggestion that comes back cannot be rejected on a technicality — nobody can say "I can't eat that" about an option that was screened for exactly that.
It also works as a weekly planning aid rather than a nightly decision: run it four times with different time budgets and you have a rough week, with more variety than anyone plans by hand. People reliably cook the same six things; a fair draw over a wider list is a cheap correction for that.
Households with one vegetarian and one omnivore get the most out of it, because the diet filter turns a recurring negotiation into a setting. Set it once and the tool never suggests anything that starts the same conversation again.
If your household's real problem is that the list of things you would consider is longer than any curated corpus, the spinner wheel takes your own entries instead — and for a two-person standoff between two named options, the this-or-that picker is faster and needs no filters at all.
Frequently asked questions
Why does it show me the number of matching options?
Because the odds change completely with the filters. A draw from three survivors is a very different thing from a draw from twenty, and hiding that would make the button feel more decisive than it is.
Can I add my own meals to the list?
Not on this page — the corpus is fixed and curated. For a draw over your own options, the spinner wheel or name picker take a list you type in.
Does the vegan filter also include vegetarian options?
No, it is stricter. Every vegan option is also flagged vegetarian, but vegetarian options containing dairy or eggs are excluded when you select vegan.
Why do takeaway options show zero minutes?
Because the minutes field measures hands-on cooking time specifically, which is zero for anything you order. It is not a claim about delivery speed.
What happens if no options match?
The tool says so and refuses to draw. It never relaxes a filter you set in order to produce an answer, because a result that violates your constraints is worse than no result.
Is the cost band in a particular currency?
No — it is a relative three-band scale: store-cupboard, a normal shop, and a treat. Absolute prices vary too much by country for a number to mean anything.
Can it remember what it suggested yesterday?
No. Each draw is independent and nothing is stored, so the same suggestion can come up two nights running. Tools like the cold-call picker do keep a no-repeat cycle, but that guarantee is not appropriate here.
Does it favour quicker meals when I widen the time filter?
No. Widening the filter only adds options to the pool; every option in the pool is equally likely regardless of how long it takes.
Why is the list only about twenty-five options?
Because a list of nine hundred would be a larger download for no benefit. Nobody needs nine hundred suggestions; they need the handful that fit tonight's actual constraints.