Skip to content
EN

Published: 2026-07-04

One tagged list, many decisions: designing a master list for filtered random picks

A decision list is only useful if it is current, and nobody keeps six lists current. The fix is structural: keep one master list, tag each item with the situations it fits, and let the filter — not a fresh copy-paste — decide what is on the menu tonight.

Why decision lists multiply and die

It always starts with one list — "dinner ideas," say, twenty items long. Then a busy Tuesday arrives and half the list is two-hour recipes, so you make "quick dinners." Then a no-spend month spawns "cheap dinners." Within a season you have five or six overlapping lists, a new idea gets added to one of them (whichever was open), and the moment two copies disagree, all of them stop being trustworthy. The failure is not discipline; it is data design. You stored the same information in multiple places, and duplicated data always drifts.

The alternative is the same one every database designer reaches for: one canonical list, with the situational information attached to each item instead of encoded in which list it lives on. That is precisely what the Conditional Random Picker is built for. Each line is an item plus hashtags — Stir fry #quick #cook, Burger #takeout — and at pick time you filter by tag, so the "quick dinners" list is not a document you maintain but a query you run.

How the filter reads your tags

Two rules govern the filter, and they pull in opposite directions by design. The include field takes a comma-separated set of tags and keeps only the items that carry all of them — include is an AND. Type quick, healthy and a salad tagged #healthy #quick stays in the pool, while a pizza tagged only #quick drops out. The exclude field is the opposite: an item is removed if it carries any excluded tag — exclude is an OR, a veto. Matching ignores capitalization (#Quick and #quick are the same tag), and when the pick lands, the tags are stripped from the displayed result, so the machinery stays out of the answer.

The AND-include is what makes a master list expressive. With single-tag filtering you would need a combined tag for every situation (#quick-and-healthy, and soon a combinatorial explosion of them). With AND semantics, you tag each item along independent dimensions once and compose the dimensions at pick time.

Designing a tag vocabulary that survives contact with real life

A workable vocabulary has a few properties. First, tags should name dimensions, not moods: effort (#quick vs #project), method (#cook vs #takeout), dietary facts (#veg, #spicy). "Mood" tags like #comfy feel right when you write them and mean nothing three months later. Second, pick one word per concept and stick to it — a list where half the fast meals are #quick and half are #fast will quietly drop the other half from every filtered draw, and randomness makes that hard to notice. Third, keep it small: two to four tags per item, five or six tags total across the list. If you find yourself scrolling a mental tag glossary, the vocabulary has failed.

One more habit pays off: tag the exceptions, not the defaults. If almost everything on your list is vegetarian, tagging every item #veg is busywork — tag the few meat dishes #meat and use exclude when the vegetarian friend visits. The exclude field is at its best as an allergy or veto switch: spicy when the kids are eating, gym for hotel-room workouts, scary on family movie night.

The same pattern beyond dinner

Meals are the gateway use, but the pattern transfers anywhere one list serves several situations. A workout list tagged #upper, #legs, #short, #nogym becomes a different program every morning depending on the filter. A date-night list tagged #free, #indoor, #booking adapts to weather and budget. Movie backlogs (#short, #subtitles, #rewatch), weekend chores (#outdoor, #tenmin), even icebreaker questions for different audiences — the shape is identical: one honest list, tagged along the dimensions that actually change between occasions. If your situations differ by likelihood rather than by category — you want takeout to win sometimes, just not often — that is a job for the Weighted Random Picker instead; tags gate, weights tilt.

When the filter comes back empty

Stack enough conditions and eventually a draw returns nothing: no item carries all the include tags and dodges every exclude. The tool does not invent an answer — an empty pool yields an empty result — and that emptiness is information. It means your list has a hole at exactly the intersection you keep asking for. Quick and healthy and not takeout coming up blank is your cue to go find two recipes that fit, not to loosen your standards at 6 pm with low blood sugar. In the moment, drop one include tag (start with the one you care least about) and re-roll; afterwards, patch the gap so next Tuesday's query has something to find.

Start with the list you already have. Paste it into the Conditional Random Picker , spend five minutes tagging along two dimensions, and retire the other five copies. Everything runs in your browser, the list is saved locally between visits, and the next time someone says "something quick, but not spicy," the answer is one filtered click away.

← Back to all posts

Send feedback

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