We have been mastering the art of draw for over four years and put our expertise at your disposal.


The draw

A procedure of designation of the elements of a set in a random way.

This is what defines a draw. On Pickaw, we meet these two conditions and much more.

Every draw on Pickaw is
And therefore fair, since we collect and draw from all the entries in the contest.
Because it is impossible for us or for the user to choose the people drawn: the random is provided by the service Random.org.
Thanks to the unique seed generated and attributed to the draw that allows it to be verified and reproduced from the entries.

These three elements are the minimum required for us to ensure the integrity of a draw, which will take place in the best conditions. But how is that possible knowing that random and reproducible cannot coexist? That's how we introduce the concept of seed.

A seed is a unique string of 16 characters. By using the same seed for a draw, you will get the same result: it allows you to reproduce a draw to verify that it has not been altered. See the Drawchain™ page for more technical details about the seed.

Course of a draw

Every draw made on Pickaw is done in the same way, in several steps, sometimes a little technical:

If an error or disconnection occurs during the draw, it is automatically paused with a backup of the seedrandom instance. This allows it to be resumed later, without losing the state of reproducible hazard.
Our draw system can draw & check up to 10 entries simultaneously, it allows you to go faster when there are many winners to draw.
The draws made on TWrench also used the seedrandom library to determine the places to be drawn among all the entries.
At the beginning of the draw, an object seedrandom is instantiated with the seed assigned.
A decimal number between 0 and 1 (excluded) is generated via the instance seedrandom.
This number is multiplied by the total number of remaining weighted entries in the contest, we obtain here a winning position.
  1. If there was no previously drawn entry: the position is maintained.
  2. Otherthise if there has already been at least one entry drawn: the position is recalculated by incrementing it each time a position less than or equal to it is found among the entries already drawn sorted by position.
For example: on a contest with 101 entries, if the 3 entries already drawn are in position {30, 50, 60} and the drawn position (between 0 (included) and 97 (excluded)) is 49: the recalculated position is 51 because it is incremented twice (for 30 and 50). If it had been 29 or lower, it would have remained unchanged.
The (recalculated) position allows to quickly find the concerned entry in our database, this entry is considered to be drawn.
The entry is automatically checked according to the contest settings, then it may be subject to manual check by the user (if enabled).
  1. If it passes all the checks successfully : it's a winner.
  2. If it fails at least one of the checks: we repeat from step 2 and another entry is drawn until the number of winners is reached, or until all entries are exhausted.

Source of the random

For obvious reasons, we do not choose the winners of the Pickaw draw contests. The random that determines the outcome of the draws is generated via a third-party service.

We buy services every month from Random.org so that they provide us with strings to generate seeds for the draws. By using their services, we ensure that we have a truly random basis.

In computer science, the random cannot be reproduced, no matter what method is used (or we talk about pseudo-random). That's why we rely on true random chains from Random.org that are generated from atmospheric noise around the world. We invite you to consult this page to learn more about random and pseudo-random.

In this way, the contestants are certain that the winners are not designated by the contest organizer, who is himself certain that they are not designated by Pickaw.

And how do we ensure that the winners are not chosen by Pickaw or that there has been no alteration in the meantime? Thanks to the Drawchain™.

Presentation of the Drawchain™

In order to govern this whole drawing process, we have devised and designed a common base that we have called Drawchain™ which means "chain of the draws", following the example of the Blockchain for the "chain of the blocks". For developers and more curious among you, we invite you to consult the (little technical) presentation of the Drawchain™ to know how it works.