Growth and engagement
How to pick a giveaway winner from comments, fairly
Pick an Instagram or Facebook giveaway winner from the comments with a fair, random, checkable draw: clean the list, number it, draw, and prove it.
· 7 min read
In this guide · 8 sections
The method in four lines
Collect every comment, remove the ones that break your rules, give each person one number, then draw a number with something random that you can show to everyone. That is the whole job. What makes it fair is not the tool but the order: publish the rules first, build the list from the comments as they stand when entries close, and let people see the draw.
Neither Instagram nor Facebook has a built-in button that chooses a winner from a post’s comments, so you do this part yourself. It is not hard, but each step has one mistake that costs you trust.
Before the draw: fix the rules in public
Most disputes about a draw are really disputes about rules that were unclear on day one. Put these in the post or its caption, or in a pinned comment, before anyone enters.
- What counts as an entry: one comment, a comment tagging a friend, a comment with a keyword.
- How many entries a person can have. One per person is the simplest rule to enforce.
- The closing date and time, with a time zone.
- Who can win: country, minimum age, and whether you ship abroad.
- How you will pick: “a random draw from all valid comments”.
- How the winner is told, and how long they have to reply before you choose someone else.
Instagram’s Promotion Guidelines make whoever runs a giveaway responsible for running it lawfully: the official rules, the offer terms and eligibility requirements, and the laws that apply to the promotion and its prizes. They also require a release of Instagram by each entrant and a statement that Instagram doesn’t sponsor, endorse or administer the promotion. Local law may add more, such as rules about prize draws that need a purchase, so treat this guide as practical help, not legal advice. See also our guide on running a giveaway end to end.
Step 1: collect the comments
Open the post once entries have closed and scroll through every comment, loading replies and “view more comments” links as you go. As far as I could tell, the Instagram app has no built-in way to export a post’s comments, so you either copy them by hand into a spreadsheet or use a tool. If you use a tool, make sure it connects through a normal permission screen and never asks for your Instagram password.
Write down for each comment the username, the comment text and the time. That gives you something you can show later. Take a screenshot of the post with the comment count before you start, so nobody can say you changed it.
Tip: Do the list while the post is still up and closed to new entries. Say “entries closed” in a new comment or in the caption, and copy the list once. Re-copying it later invites arguments about which version was real.
Step 2: clean the list
Go through the list against the rules you published, not against your mood. Each removal should have a reason you could state in one line.
| Problem | What to do |
|---|---|
| Same person commented five times | Keep one entry, unless your rules give extra entries for extra actions |
| Comment is only emojis or “.” | Keep it if your rules said any comment counts; remove it if you required a tag or a word |
| Account looks fake or is a known bot | Remove it, and say in the rules that you may |
| Entrant is outside the allowed countries | Remove it if you published the restriction |
| Comment was deleted by the user | Remove it: no comment, no entry |
| Your own team’s comments | Remove them |
| Replies to other people’s comments | Count them only if your rules said replies enter |
If you require a follow or a tag, check that after the draw, only for the person drawn. Checking every entrant is slow and unnecessary. If the winner didn’t follow through, take the next draw. Keep the list in order and number it from 1, with one row per person. Count the rows: that count is your number of entries, and it goes in your announcement.
Step 3: draw with something random
Never pick “by feel”, and never scroll the list and stop on one. Use one of the three options below.
A spreadsheet
With your entries numbered 1 to 214, type =RANDBETWEEN(1,214) in a cell. The number it shows is the winning row. Spreadsheets recalculate this formula every time you change anything, so copy the cell and paste it back as a value straight away, or the winner will change under you.
A public number, for a draw anyone can check
Announce in advance: “The winner is chosen using the first result announced after entries close, divided by the number of entries; the remainder gives the winning number.” Pick a number nobody controls, such as a national lottery draw. If the number is 8,731 and there are 214 entries, 8,731 divided by 214 leaves 171, so entry 171 wins. A remainder of 0 means the last entry. Anyone can redo that sum with your list and get the same answer.
A recorded draw
Screen-record yourself pasting the numbered list into a random picker, pressing the button, and showing the winner. Post the video. It is less airtight than the public-number method, since you could re-record, but it is easy and people trust what they can watch.
- Draw a second and third name at the same time as backups, so a winner who goes silent doesn’t force a re-draw.
- Don’t change the list after the draw. If you find a mistake, say so, redo the draw, and show both.
Step 4: announce and contact the winner
- Post the result somewhere public: a new post, a Story or a pinned comment. Show the entry count and the way you chose, not just the name.
- Tag or name the winner only if your rules said you would. Otherwise write their username in your announcement without drama.
- Send them a direct message. They may arrive in message requests, so also tag them publicly in a comment so they see it.
- Tell them what they must send, such as an address, and by when. Say that scam accounts copy giveaway winners, and that you will never ask for a password or a payment.
- If they don’t answer by the deadline in your rules, move to the backup and update the announcement.
- Ship the prize, and post proof if you promised to.
Winners from copy-cat accounts are a real problem. Tell your winner your exact username, so a stranger posing as you can’t collect.
Mistakes that cost you trust
- Choosing the winner before the deadline, even if you didn’t mean to. Draw after it, always.
- Letting a friend or colleague enter. Even a fair draw looks suspect.
- Changing the rules after posting. Edit only to correct errors, and say so.
- Using a picker that needs your login. A random number generator does not need to see your account.
- Quietly removing an entry because you dislike the person. Remove entries only for published reasons.
None of this requires software you pay for. A numbered list, a published rule and a draw people can see will give you a winner nobody can reasonably dispute.
Questions people ask
Does Instagram pick giveaway winners for me?
No. The app has no feature that picks a winner from a post’s comments. You collect the entries and draw yourself, or use a tool, which should never ask for your Instagram password.
Should I give extra entries for extra comments?
Only if you said so in the rules before entries opened. One entry per person is the simplest and the least likely to cause arguments. If you allow extras, number each person’s entries separately and keep the proof.
How do I prove the draw was fair?
Publish the rules first, share the entry count, and draw in a way others can repeat or watch: a public number divided by the entry count, or a screen recording of the draw. Keep your numbered list for a few weeks.
What if the winner doesn’t reply?
Set a deadline in your rules, such as 48 hours. After it passes, move to the backup name you drew at the same time, and update the announcement so people can see what happened.
Do the same steps work on Facebook?
Yes. The list, the clean-up and the draw are identical. Facebook and Instagram each have their own promotion rules, so check the platform you run the giveaway on before launching.