How to Run a Fair Instagram Giveaway (And Stay Compliant With Meta’s Rules)
“We’ll pick a winner at random” is the easiest sentence to say and one of the easiest promises to accidentally break — not through dishonesty, usually, but through a tool that uses a weak source of randomness, or a host who doesn’t realize duplicate comments are quietly giving some entrants three times the odds of everyone else. Running a giveaway that’s actually fair, and actually compliant with Instagram’s own rules, is more specific than “put everyone’s name in a hat.”
What “random” should actually mean
Most giveaway picker tools — and, worth saying directly, a lot of hand-rolled scripts — reach for Math.random() because it’s the obvious built-in option. It’s not built for this: it’s not cryptographically secure, and depending on the JavaScript engine running it, its output can have subtle statistical bias that a truly fair draw shouldn’t have. The Web Crypto API’s crypto.getRandomValues() is the actual cryptographically secure option, and it’s what a genuinely fair random-winner tool should be built on — every entry gets a real, unbiased, equal chance, not an approximately-equal one.
The duplicate-entry decision is yours to make, not the tool’s
If your giveaway rule is “comment to enter, tag a friend for an extra entry,” then duplicate comments from the same person should count multiple times — that’s the entire incentive structure you designed. If your rule is “one entry per person,” duplicates need to collapse down before the draw, or people who happened to comment five times get five times the odds of someone who commented once. A tool that silently assumes one or the other for you is making a fairness decision on your behalf; the right answer is a visible, one-click toggle, not a hidden default.
Draw a backup winner in the same pass
If your primary winner doesn’t respond, or turns out to be ineligible, you want a backup already chosen — decided in the exact same random draw, not a second separate roll after the fact that looks, to your audience, suspiciously like a do-over. Drawing winners and backups together in one shuffle keeps the whole process visibly, provably fair from the outside.
What Meta actually requires (not just “follow the rules”)
A giveaway that only worries about picking a winner fairly is still missing real compliance requirements:
- Official rules, published at a permanent, publicly accessible URL — eligibility, entry method, deadline, how a winner is chosen, “No Purchase Necessary,” “Void Where Prohibited.”
- Meta’s exact release disclaimer, verbatim, in your official rules or post: ”This promotion is in no way sponsored, endorsed or administered by, or associated with, Instagram.”
- One explicitly banned entry mechanic: “tag yourself in a photo you’re not in.” Follow-to-enter and comment-to-enter are both fine.
This isn’t legal advice — it’s a compressed pointer toward requirements that are easy to miss if nobody’s told you they exist, the same way Instagram’s own export settings hide a date-range trap nobody warns you about until it’s cost them data.
Doing the draw
unfollowmap’s Giveaway Picker runs the shuffle through the Web Crypto API, lets you toggle duplicate removal, draws winners and backups in a single pass, and gives you a copyable results summary plus the exact Meta disclaimer text, ready to paste. If you’ve already uploaded your Instagram export elsewhere on the site, it can also pull your actual followers list in as the entry pool for giveaways open to everyone who follows you.
The short version
A fair giveaway needs a genuinely random draw (not Math.random()), a duplicate-entry rule that matches what you actually told people, a backup winner chosen in the same pass, and Meta’s specific disclaimer where people can see it. None of that is complicated once you know it’s required — the problem is that most tools, and most quick “we’ll pick a winner” posts, skip at least one of these without anyone noticing until it matters.