We used a custom Python script which was specifically programmed for this giveaway. It used the Twitter Public Rest API to download a list of all @dbrand tweet replies.
Once the full list was loaded, the script generated a list of IDs. From this pool of unique account IDs, a random entry was picked using a randomly generated seed based on the NumPy project. This random pick was the resulting winner.
For every subsequent winner selection, the script executed again. This triggered the Twitter Public Rest API to fetch again. The script downloaded the newest replies and kept going until it reached the replies which were downloaded during the previous run. What this did was save us from having to download a full list of replies every time a winner was selected \u2013 while also ensuring that everyone was included and had an equal chance of winning for each random draw.