$npx -y skills add ECNU-ICALK/AutoSkill --skill raffle-winner-pickerPicks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
| 1 | # Raffle Winner Picker |
| 2 | |
| 3 | This skill randomly selects winners from lists, spreadsheets, or Google Sheets for giveaways and contests. |
| 4 | |
| 5 | ## When to Use This Skill |
| 6 | |
| 7 | - Running social media giveaways |
| 8 | - Picking raffle winners at events |
| 9 | - Randomly selecting participants for surveys or tests |
| 10 | - Choosing winners from contest submissions |
| 11 | - Fair distribution of limited spots or resources |
| 12 | - Random team assignments |
| 13 | |
| 14 | ## What This Skill Does |
| 15 | |
| 16 | 1. **Random Selection**: Uses cryptographically random selection |
| 17 | 2. **Multiple Sources**: Works with CSV, Excel, Google Sheets, or plain lists |
| 18 | 3. **Multiple Winners**: Can pick one or multiple winners |
| 19 | 4. **Duplicate Prevention**: Ensures the same person can't win twice |
| 20 | 5. **Transparent Results**: Shows the selection process clearly |
| 21 | 6. **Winner Details**: Displays all relevant information about winners |
| 22 | |
| 23 | ## How to Use |
| 24 | |
| 25 | ### From Google Sheets |
| 26 | |
| 27 | ``` |
| 28 | Pick a random row from this Google Sheet to select a winner |
| 29 | for a giveaway: [Sheet URL] |
| 30 | ``` |
| 31 | |
| 32 | ### From Local File |
| 33 | |
| 34 | ``` |
| 35 | Pick 3 random winners from entries.csv |
| 36 | ``` |
| 37 | |
| 38 | ### From List |
| 39 | |
| 40 | ``` |
| 41 | Pick a random winner from this list: |
| 42 | - Alice (alice@email.com) |
| 43 | - Bob (bob@email.com) |
| 44 | - Carol (carol@email.com) |
| 45 | ... |
| 46 | ``` |
| 47 | |
| 48 | ### Multiple Winners |
| 49 | |
| 50 | ``` |
| 51 | Pick 5 random winners from contest-entries.xlsx, |
| 52 | make sure no duplicates |
| 53 | ``` |
| 54 | |
| 55 | ## Example |
| 56 | |
| 57 | **User**: "Pick a random row from this Google Sheet to select a winner for a giveaway." |
| 58 | |
| 59 | **Output**: |
| 60 | ``` |
| 61 | Accessing Google Sheet... |
| 62 | Total entries found: 247 |
| 63 | |
| 64 | Randomly selecting winner... |
| 65 | |
| 66 | 🎉 WINNER SELECTED! 🎉 |
| 67 | |
| 68 | Row #142 |
| 69 | Name: Sarah Johnson |
| 70 | Email: sarah.j@email.com |
| 71 | Entry Date: March 10, 2024 |
| 72 | Comment: "Love your newsletter!" |
| 73 | |
| 74 | Selection method: Cryptographically random |
| 75 | Timestamp: 2024-03-15 14:32:18 UTC |
| 76 | |
| 77 | Would you like to: |
| 78 | - Pick another winner (excluding Sarah)? |
| 79 | - Export winner details? |
| 80 | - Pick runner-ups? |
| 81 | ``` |
| 82 | |
| 83 | **Inspired by:** Lenny's use case - picking a Sora 2 giveaway winner from his subscriber Slack community |
| 84 | |
| 85 | ## Features |
| 86 | |
| 87 | ### Fair Selection |
| 88 | - Uses secure random number generation |
| 89 | - No bias or patterns |
| 90 | - Transparent process |
| 91 | - Repeatable with seed (for verification) |
| 92 | |
| 93 | ### Exclusions |
| 94 | ``` |
| 95 | Pick a random winner excluding previous winners: |
| 96 | Alice, Bob, Carol |
| 97 | ``` |
| 98 | |
| 99 | ### Weighted Selection |
| 100 | ``` |
| 101 | Pick a winner with weighted probability based on |
| 102 | the "entries" column (1 entry = 1 ticket) |
| 103 | ``` |
| 104 | |
| 105 | ### Runner-ups |
| 106 | ``` |
| 107 | Pick 1 winner and 3 runner-ups from the list |
| 108 | ``` |
| 109 | |
| 110 | ## Example Workflows |
| 111 | |
| 112 | ### Social Media Giveaway |
| 113 | 1. Export entries from Google Form to Sheets |
| 114 | 2. "Pick a random winner from [Sheet URL]" |
| 115 | 3. Verify winner details |
| 116 | 4. Announce publicly with timestamp |
| 117 | |
| 118 | ### Event Raffle |
| 119 | 1. Create CSV of attendee names and emails |
| 120 | 2. "Pick 10 random winners from attendees.csv" |
| 121 | 3. Export winner list |
| 122 | 4. Email winners directly |
| 123 | |
| 124 | ### Team Assignment |
| 125 | 1. Have list of participants |
| 126 | 2. "Randomly split this list into 4 equal teams" |
| 127 | 3. Review assignments |
| 128 | 4. Share team rosters |
| 129 | |
| 130 | ## Tips |
| 131 | |
| 132 | - **Document the process**: Save the timestamp and method |
| 133 | - **Public announcement**: Share selection details for transparency |
| 134 | - **Check eligibility**: Verify winner meets contest rules |
| 135 | - **Have backups**: Pick runner-ups in case winner is ineligible |
| 136 | - **Export results**: Save winner list for records |
| 137 | |
| 138 | ## Privacy & Fairness |
| 139 | |
| 140 | ✓ Uses cryptographically secure randomness |
| 141 | ✓ No manipulation possible |
| 142 | ✓ Timestamp recorded for verification |
| 143 | ✓ Can provide seed for third-party verification |
| 144 | ✓ Respects data privacy |
| 145 | |
| 146 | ## Common Use Cases |
| 147 | |
| 148 | - Newsletter subscriber giveaways |
| 149 | - Product launch raffles |
| 150 | - Conference ticket drawings |
| 151 | - Beta tester selection |
| 152 | - Focus group participant selection |
| 153 | - Random prize distribution at events |