TL;DR
Every word in your prompt is a vote for some approach. You ask an LLM to solve a problem, and the model silently decides how to do it, and that decision is driven not by your requirements but by incidental context: the words around the task, the tone, the details you happened to mention. The researchers call this the "invisible lottery": you get one of many possible approaches, but you don't know which one won or why.
The problem is that any complex task has several equally correct solutions with fundamentally different properties. Ask about a negotiation strategy and you'll get a hardball or a soft one, depending on whether you mentioned a "startup" or a "corporation" earlier in the conversation. Ask for an article structure: "for readers" gives you one thing, "for a conference" something else entirely. You didn't choose; the context chose for you.
The study's key insight: naming the approach you want outright is the only reliable defense. The more precisely you state what exactly you want, the less the model has to guess on your behalf.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Phenomenon Blueprint
A typical request:
[incidental context] + [task] → the model picks an approach on its own → ?
What happens inside:
The word "prototype" → a lightweight, fast approach
The word "production" → a robust, complex approach
The word "academic" → theoretically correct but fragile approach
Random words → a ~26 pp shift even with no meaning attached
Defense:
[task] + [explicit name of the approach you want] → a predictable result
No explicit instruction: a lottery. With one: control.
Example in Practice
Task: Write an investor pitch for a meeting at a startup competition.
A typical prompt plays the lottery: if the conversation earlier included "quick," "draft," "rough sketch," you'll get an informal version. If it included "important meeting," "serious people," you'll get a different one. Neither is necessarily what you need.
Prompt that names the approach explicitly:
Write an investor pitch for Techstars Demo Day.
My product: [product description]
Audience: venture partners, typical check size $500K–$2M
Format: 3-minute spoken pitch + one slide
Approach: problem → solution → market → traction → team → ask.
Tone: confident, no jargon, no unnecessary hedging.
Don't suggest alternative structures; use exactly this one.
Result: The model will use the structure you gave it instead of guessing the format from context. You'll get a pitch with exactly the sequence of blocks and the tone you named, not the one that "won the lottery" because of the word "Techstars" or some other incidental context.
Why It Works
The LLM doesn't know which of the equally correct approaches you need. When a task allows several solutions (which is almost always), the model looks for signals in the context. It was trained on a vast body of text where "prototype" usually came with one kind of solution, "interview" with another, "academic" with a third. That's not a bug; it's what the model learned from.
The problem is that your prompt always contains incidental context: previous messages, the system prompt, the style of the question, the details you mentioned. All of it is signal. The study showed that even clearly neutral words (a team name, a color scheme) shift the choice by 26 percentage points on average. Meaningful words (a constraint, a role, the task context) shift it by 40–100 points.
Naming the approach works because it removes the ambiguity. The model doesn't hunt for signals; it's been told directly. It's not magic and not a trick, just a precise instruction instead of guesswork.
Control levers: - Name the approach/structure/method explicitly → eliminates the guessing - Rule out alternatives ("don't suggest other options") → locks in the choice - Remove incidental context (start a new chat for an important task) → resets the accumulated signals - Audit the prompt (ask the model which words in it could quietly influence the choice of approach) → makes the lottery visible
Prompt Template
{Task}
Audience/context: {who it's for / under what conditions}
Use exactly this approach: {name of the method / structure / style / logic}.
Don't choose an approach yourself; I've already specified what I need.
If my description is incomplete, ask before you start.
What to fill in:
- {task}: the specific request, without extra context
- {who it's for / under what conditions}: only what genuinely matters for the result
- {name of the method / structure / style / logic}: an explicit description of the approach you want: "STAR structure," "firm tone with no hedging," "argue from data to conclusion," "three blocks: problem, solution, call to action"
Audit template (if you're not sure whether your prompt has hidden signals):
Read this prompt and find words or details that could
quietly nudge you toward a particular style, structure
or method, even if I didn't ask for it:
{paste your prompt}
For each such signal, explain what it pushes you toward
and how to change it if I need a different approach.
🚀 Quick start: paste this into the chat:
Here's a template for controlling which approach an LLM picks.
Adapt it to my task: [your task].
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask which approach you want and what exactly it shouldn't pick on its own, because the template doesn't work without that: explicit naming is the whole point of the method.
Limitations
⚠️ Only works when you know the approach you need: If you're not sure yourself which method/structure/style you need, you can't name it explicitly. In that case, first ask the model to list the options and explain how they differ, then choose.
⚠️ Doesn't protect against built-up context in a long conversation: If the previous 20 messages created a strong contextual signal, one explicit instruction may not outweigh it. For critical tasks, it's better to start a new chat.
⚠️ Behavior depends on the model: The same words affect GPT, Claude and Gemini differently. What shifts the choice by 80 points in one model might shift it by 20 in another. Explicit naming works everywhere, but specific signals vary.
How They Studied It
The idea was simple: take tasks that have several correct solutions with different properties, then watch what the model chooses when only the incidental context around the task changes.
The researchers ran 46,535 experiments across 11 tasks and 15 model configurations (GPT-5, Claude Sonnet 4, Gemini 3 Flash and others). The task always stayed the same; only the "incidental" context changed: a word at the start of the prompt, a mentioned role, the import style, a timestamp. The output was classified by the type of solution chosen, based on code-structure analysis: not whether it was right or wrong, but which of the correct options the model picked.
The surprise: even words with no meaning attached (random identifiers, color schemes, team names) shifted the choice by 26 percentage points on average. Meaningful words made up to a 100-point difference. Practically no model was immune, though the strength of the effect varied. A curious detail: at temperature 0 (which many consider "deterministic"), 21% of cells still produced different results on repeated requests. The lottery doesn't go away even without randomness.
The study confirmed: the problem isn't code quality; almost everything passed the tests. The problem is an invisible selection policy shaped by context. For chat users this means the same dynamic applies to any request with several equally valid answers.
Adaptations and Extrapolations
💡 Adaptation for Analysis and Decision-Making
The principle applies anywhere a task has several equally logical answers.
Analyze the situation: [description].
Use exactly this analysis framework: SWOT.
Don't switch to other models. Don't draw a "what to do" conclusion;
just a structured analysis across the four quadrants.
Without explicit naming, the model might apply PEST, a risk matrix, or narrative analysis: all correct, but not what you need.
🔧 Technique: Audit for Hidden Signals Before an Important Request
Before you send a critical prompt, check it:
Find words and details in this prompt that could quietly
steer you toward a particular approach, tone or structure.
For each signal, say what it pushes you toward.
Prompt to check:
[paste your prompt]
This makes the "invisible lottery" visible, and you decide whether to keep the signals or remove them.
🔧 Technique: "Reset the Context" Before an Important Task
If you've been working in a long conversation, start a new chat. Then:
For this task I want a neutral start with no accumulated context.
Confirm that you're starting from a clean slate before I describe the task.
Especially useful when the previous conversation was in a different tone or domain.
Resources
Paper title: The Invisible Lottery: How Subtle Cues Steer Algorithm Choice in LLM Code Generation
Authors: Akanksha Narula, Mofasshara Binte Rafique, Laurent Bindschaedler
Institutions: Max Planck Institute for Software Systems (MPI-SWS), Saarbrücken, Germany; Independent Researcher, Switzerland
Publication: Proceedings of the 43rd International Conference on Machine Learning (ICML 2026), Seoul
Contact: [email protected]