UnipickerDraw Whitepaper
FAQ

Whitepaper FAQ

Frequently asked questions about Unipicker draws.

Fairness concepts
Is Unipicker's random number really impossible to manipulate?
The draw seed isn't a value Unipicker's own servers make up — it's a round value that an external seed-issuing server (Drand), unrelated to Unipicker, broadcasts publicly worldwide on a fixed schedule. Neither Unipicker nor the organizer knows what value will come up before the result.

On top of that, the moment a draw starts, the entrant list and draw settings are sealed with a hash and posted to the draw history first. If anyone tries to alter the entrant list or swap the seed after the result, hashing that data the same way again produces a value that no longer matches the originally posted seal — exposing the tampering immediately. Sourcing the seed externally and sealing the data in advance work together to make it practically impossible for anyone to manipulate the outcome.
It's a computer-generated number — why can it be trusted?
Unipicker's basic draw logic is lining up by random number: every entrant is assigned one computer-generated random number, entrants are lined up in order of that number's size, and winners are assigned in order from the front. A single random number can't be manipulated to favor anyone, and the sorting itself always resolves to one deterministic order — there's no room for a person to step in and change it.

On top of that, Unipicker layers on specialized algorithms depending on the situation. When entrants need to be randomly reshuffled, it uses Fisher-Yates shuffle; when it needs to pick multiple winners from a mass entrant pool without duplicates, it uses Floyd sampling. And whichever method is used, an unfair-number rejection policy is applied on top so no number gets an edge — if the random range exceeds a multiple of the entrant count, that value is discarded and regenerated. In short, lining up by random number is the foundation, and Fisher-Yates, Floyd sampling, and the unfair-number rejection policy are additional mechanisms layered on top of it to fit each draw's needs. All of these are algorithms already proven for a long time in academia and industry — Unipicker didn't invent them, it adopted them as-is and publishes them in the whitepaper.
If you run the same draw multiple times, is the result the same or different each time?
Every time a new draw starts, a fresh seed is issued from the Drand round at that moment, so running the draw again with the same entrant list produces a different result each time. That means repeating a draw until you get a result you like is pointless.

Conversely, if you keep the same entrant data and the same seed value and recompute with the identical algorithm, the result is always the same no matter who computes it or when. This reproducibility is exactly what lets a third party verify that a draw result wasn't manipulated.
Choosing a draw method
Ledger draw, unique-certification-code draw, manager-run draw, or public draw — which should I choose?
The four options differ in who runs the draw and how far the fairness needs to be proven.

A ledger draw and a unique-certification-code draw (CERT-CDE) are both run directly by the organizer. An ordinary draw only needs a ledger draw; if you also need to block abuse like multi-accounting and prove with a certification code that it's the "one unique draw across all of Unipicker," add a CERT-CDE.

A manager-run draw (CERT-UNI) and a public draw (CERT-PUB) are instead run by Unipicker on the organizer's behalf. Having a third party — a Unipicker draw manager, not the organizer — actually run the draw changes the weight of the fairness claim. If it must happen live in front of every participant, choose CERT-PUB (in-person or YouTube live) among the two.
What exactly does a manager-run draw handle, and where are its limits?
The core of a manager-run draw (CERT-UNI) is that a third party — a Unipicker draw manager, not the organizer — actually runs the draw. Having the organizer press the button themselves versus having a disinterested third party do it carries a different level of trust in fairness, which is why it's a separate tier.

The service starts with a consultation. The manager first listens to the direction the organizer wants the draw to take, then based on that, proposes the best draw method — draw type, number of draws, and so on. Once the shape of the draw is settled, you're given a guide on how to prepare the draw materials. The manager then takes the entrant list and draw settings the organizer prepared and checks that they're filled out in the correct format before running the draw.

That review has a clear boundary, though. The manager checks formatting errors in the data — duplicates, mis-entries — but does not check the validity of the data itself, such as whether everyone on the list is actually a legitimate entrant. Judging whether someone who never actually entered is included, or whether entry conditions were met, is something only the organizer can know — it's outside what a Unipicker manager can verify.
Which is fairest — CERT-CDE, CERT-UNI, or CERT-PUB?
Fairness rises in the order CERT-CDE < CERT-UNI < CERT-PUB among the three certified draws.

With CERT-CDE, the organizer runs the draw itself, and Unipicker only issues a unique certification code guaranteeing it's "the one unique draw across all of Unipicker." CERT-UNI goes a step further: a Unipicker manager runs the draw as a third party, leaving less room for conflicts of interest than when the organizer runs it directly. CERT-PUB adds to that manager-run process the fact that the entire draw can be watched live by everyone, in person or via YouTube — the highest tier. A manager-run draw is already fair enough, but being able to watch the whole process with your own eyes is the extra fairness that only CERT-PUB adds.
When should I use a weighted draw?
Unlike a regular draw where every entrant has equal odds, use a weighted draw when different entrants need different winning probabilities — for example, giving better odds to those who reserved more seats, participated longer, or spent more.

Unipicker implements this in two ways: weighted interval draw and weighted key draw (Efraimidis–Spirakis). The interval method assigns each entrant a winning interval proportional to their weight and draws a random number within the total sum; the key method computes a weight-adjusted key value for each entrant and sorts by that value. The computation paths differ, but both are designed so odds rise exactly in proportion to weight — the fairness of the result is identical either way.
How do I pick the right draw type?
Unipicker offers a wide range of draw types — basic, group, lucky-number, real-estate allocation, mass-entrant, gifticon, SNS, roulette, game-event, text/chat, and AI draws, among others. Which one you need depends on what you're drawing for (winners, rank/prize/group assignment, order, pairing, unit/room number, and so on).

Each draw type comes with its own guide on how to prepare your entrant data and how to run it, covered in the manual and walkthrough videos. On the Draw Types page, find the draw you need, check its manual first, and then run it the way it's meant to be run.
History & verification
Where can I check the draw history?
On the draw organizer's draw-history page, where every draw record is available. As soon as a draw starts, the draw name and seed info (the hash sealing the entrant and setting data, plus the Drand round info used to generate the seed) are posted to the history first; once the draw ends, the Drand random number actually used and the final draw seed are added.

Members enrolled in Unipicker's draw-ledger program must disclose the draw-history page URL when announcing draw results. Using that URL from the announcement, entrants can go directly to the organizer's draw-history page and check the record themselves. This URL can also be found on the draw confirmation and draw certificate.

For draws run as certified draws — a unique-certification-code draw, manager-run draw, or public draw — the certification code used and the draw certificate issued with it are also registered in the history. That certificate lets anyone reconfirm that the draw was the one unique draw across all of Unipicker.
How does a verification draw work to check for tampering?
The moment a draw starts, the entire entrant list and draw settings are run through a hash function to produce a single seal value, which is posted to the draw history first. Hash functions have the property that changing even a single character in the source data produces a completely different value, so if anyone later reorders the entrant list or edits even one name, the resulting hash is completely different from the seal originally posted.

That said, the original entrant list can contain personal information, so it isn't something anyone can download and verify themselves. Unipicker itself doesn't retain the original data unless it's a manager-run draw (CERT-UNI · CERT-PUB). So actual verification happens through a set process where Unipicker runs a verification draw on your behalf.

For a regular draw, if an entrant questions whether the draw was run fairly and requests a verification draw from the organizer, and the entrant and organizer agree on it, Unipicker receives the original data from the organizer, runs the verification draw, and delivers the result to both the entrant and the organizer.

For a manager-run draw, the complainant and organizer can agree and request a verification draw from Unipicker directly, or the complainant can submit a "Draw Material Disclosure Request" to Unipicker. Unipicker reviews it with the organizer and lets you know whether the material can be disclosed; if approved, Unipicker runs the verification draw using the retained material.
What happens if a draw is flagged as fraudulent?
Unipicker runs an anti-fraud draw monitoring system that automatically detects patterns like repeating similar-condition draws in a short time, or steering a result toward a desired outcome with fraudulent intent. For example, repeatedly creating new draws with the same entrant list until a preferred winner comes up would fall into this pattern.

If the system judges a particular account's draw to be "fraudulent," that account's use of the draw-ledger service is suspended. The suspension length scales with how many times it's been caught — 1 month for a first offense, 3 months for a second or later offense. During that period, the account can't build up a draw history that proves fairness. This safeguard exists to protect trust in draw history across the whole Unipicker platform.

That said, if a draw is flagged as "fraudulent" by mistake with no fraudulent intent at all, you can file an appeal. A Unipicker manager reviews the appeal directly, and either lifts the suspension if it's found valid or rejects the appeal if it isn't.
Privacy & operations
How is entrant personal data protected?
The list you upload for a draw is stored only on the PC running the draw — never sent to and accumulated on Unipicker's servers.

Running a draw doesn't require uploading entrants' raw personal data to Unipicker's servers in full. Draws use only the minimum information needed to determine winners, and even during history registration or certificate issuance, information like names and contacts isn't stored as-is — it's handled only as a sealed hash value.

Since a hash value alone can't be reversed to recover the original personal data, this leaves the minimum evidence needed to verify fairness while preventing entrants' personal data from being unnecessarily exposed externally or accumulated on the server.

However, for manager-run draws (CERT-UNI · CERT-PUB), Unipicker keeps the draw results on a USB drive, offline, for 2 years after the draw finishes, and securely destroys them once that period ends.
Can draws handle mass entrants (hundreds to tens of millions)?
Yes. The basic draw method of assigning and sorting a random number for every single entrant handled draws of up to roughly a million entries in internal testing, but the actual capacity depends on the user's computer specs. As the entrant count grows, it can hit a PC's CPU and memory limits, making it slow or causing it to fail.

That's why, for draws of hundreds to tens of millions of entrants, you can use separate mass-entrant winner draw logic and mass-entrant rank-assignment draw logic. By widening the range by one each round and drawing a computer random number — and when it duplicates an existing winner, selecting the newly added number in that range as the winner instead (Floyd's Sampling Without Replacement) — draws of tens of millions of entrants can be processed under the same fairness standard without repeated duplicate checks or CPU/memory strain.