OTF-ish random lottery draws

This might be OTF as the solution might be Delphi or something else

I need to obtain a random number (1 to 1000) every day for 1000 days for a public giveaway (rewards / prizes etc)

It will be broadcast live via a Youtube livesteam

Ive been asked to come up with a way to draw the number that is TRUSTABLE by the audience.
The audience is the general public and they wont care about the intricacies about how random some Delphi random number generator is - as any program will be suspiscious as it could have been tampered with to skew the results.

Something simple would work such as an Excel random number or Google has a web page that generates a random number. However, many of these come with the possibility that people could still say the Excel or Googl epage was emulated with a program so the results cant be trusted.

We have loads of ideas, but dont think we have the right solution yet

Some ideas to assist with the integrity / trustability of the draw

  • Have a CPA (Certified Practising Accountant) present to verify the draw. Not sure if we can arrange this in time and is not a good solution for doing every day for 1000 times due to cost

  • Draw from a barrel / hat etc. A very easy solution but can still draw complaints because it would be easy to control it without someone there to verify the results (piece of paper palmed up the sleeve etc)

  • Use data from a trusted source that is fairly random and frozen for a time period such as numbers pulled from the MD5 of Microsofts closing price on NASDAQ

Do you have any ideas - Delphi or otherwise - that would help to improve the TRUSTABITY of a live draw via Youtube livestream ? Ive been asked to do a computer program if possible, which obviously makes the trustability very difficult so pulling from verifable, point in time and fairly random data was my best idea.

Scott Hollows

1 Like

I’m sorry to be the bearer of bad news, but I think that you have an impossible mission.

Personally, I don’t think that there’s any way to trust the “random” numbers from a computer that you don’t have trust in - the potential for subterfuge is just too great.

I was looking into pseudo random number generators a while ago and I came across an article that put forward an argument that even adding entropy from an untrusted source in an otherwise trusted system could lead to a reduction in randomness of the numbers generated - IMHO, mostly theoretical, but still plausible.

A mechanical system with balls in a clear perspex spehere and a person reaching in to grab a ball randomly might be about the best that you could do. The person doing the draw could show that they had no balls hidden behind their hand before reaching into the sphere - no sleeves of course. They could also read off the current stock prices for a number of companies to prove that the video wasn’t pre-recorded.

Even still, considering that magicians can “demonstrate” people being cut in half in front of a live audience, there’s probably still potential for subterfuge…

Thinking about this some more, you possibly could do it with a computer - building on your idea of using a hash of a price from the stock market.

If you had a publicly verifiable source of somewhat random numbers, such as a prices of a number of stocks (a single stock price wouldn’t provide enough entropy) you could use a program to generate the hash of all of them in a consistent manner to get a result. If you made the program open source, anyone that doubted the system could either verify it themselves, or pay someone with the right skills to verify that it was working as described. Obviously such a system wouldn’t be suitable for generating random numbers for encryption, but that’s not what you’re trying to do…

How random do you want the numbers?
e.g. do you want to accept the same number if it’s generated in more than 1 day?
Thus potentially allowing someone to get more than 1 prize?


So any or the various TRNG chips would be ‘unbelievable’?

Say https://www.hackster.io/news/generating-random-numbers-a52b67bd30c0

Or https://www.tindie.com/products/manueldomke/infinite-noise-trng-true-random-number-generator/

How does the audience ever believe something is ‘trustable’? It’s like an illusion, is it not?

Hi Scott

Is your third idea not workable if you adjust it a little?

Take say the first decimal digit of the top 3 closing prices on the ASX as found on the Top5 tab of https://www2.asx.com.au/

Today, this gives you a random number of 776. Or use the second decimal if you think this is more “random”. This gives 172.

You could write a screen scraper program to automate this yet the result is verifiable by anyone and arguably as random as you probably need. Somebody would have to predict the top 3 share gains and their closing prices each day to beat the system.

Cheers Richard


Ideally a number that was drawn in a prior day would be excluded, but I can deal with that manually by repeating the draw until a fresh number is drawn.

The process can be adjusted over time, so I can still use a system that works well in the early days and in replace it with a different system in later stages

TRNG chips - these will be too difficult to explain and be trustable to a non technical user. It still has the issue of the process being hackable by using slight of hand.

So far, I am leaning towards prices from a market closing but would need to run some back testing or a system tweak to verify there is no bias towards any numbers or individual digits.

The closing could be end of day, or even end of minute (so it could be done at any time), so long as the values were coming from a trustable source

I like the idea of reading out the current price of a stock or a few other interesting things to help verify that the event is live and not pre-recorded.

Thanks for the ideas everyone, I expect more will come through.

Searching ‘daily statistics’, suggests some concrete daily sources of random seeds …

Obviously there would be an issue if some of the data can be unavailable, or not updated on weekends, etc.

Do the numbers have to be unique, or can the same number be drawn twice?

There are some commercial sites which offer the means to choose a prize winner.
See for example: RaffleCopter https://www.rafflecopter.com/
or SweepWidget https://sweepwidget.com/

So if you are doing a contest or giveaway or sweepstake the above solutions are worth looking into.

I have been developing software for lottery and security printing for many years now.
There are different ways of seeding to make the random numbers unique.
Whatever you do there will always be a few who won’t believe the result was random.
The best way may be to get the input/s from the audience/s to generate the final number.