ANU Quantum Numbers
App · Utilities · 5 actions
Randomness you can defend, from the Australian National University. Every number comes from measuring the quantum fluctuations of empty space in a lab in Canberra, so it has no formula behind it, no seed to reconstruct and no pattern to fall into - unlike the pseudo-random numbers a computer produces on its own. Draw a prize winner or a review sample from a list, shuffle a running order, get whole numbers in any range, make unguessable passwords, tokens and coupon codes, and split traffic by odds you set. Worth reaching for whenever the fairness of a draw might be questioned later, or a secret has to be genuinely unguessable. A free account gives you 100 requests a month.
Actions
| Action | What it does |
|---|---|
| Decide by chance | Get a yes or a no at odds you set, so a workflow can do something to a fair share of what passes through it: survey one order in ten, send half of a mailing list version A, put five percent of tickets in front of a reviewer. |
| Generate a random code | Make a code nobody can guess: a password, an access token, a one-time PIN, a batch of coupon codes. |
| Get random numbers | Get whole numbers between a smallest and a largest you choose - one number, or a thousand in a single step. |
| Pick from a list | Draw one item out of a list, or several - a prize winner from the entrants, five orders to check out of yesterday's hundred, whoever is on call this week. |
| Shuffle a list | Put a list into a random order: the running order for presentations, the rotation for a support roster, the order applications get reviewed in so nobody is advantaged by having applied first. |
Decide by chance
Get a yes or a no at odds you set, so a workflow can do something to a fair share of what passes through it: survey one order in ten, send half of a mailing list version A, put five percent of tickets in front of a reviewer. The odds come out right over time because the draw behind them is quantum noise with no pattern to fall into - and the step reports the number it landed on, so a decision can be shown to have been fair rather than just asserted to be.
Inputs
- Chance of yes (%)
chance_percentnumberRequired - Out of 100. Decimals are fine, so 2.5 really is two and a half percent.From 0 to 100. Default:
50.
Outputs
chance_percentnumber- The odds this decision was made at.
decisiontext- The same answer as the word 'Yes' or 'No', for showing someone or writing to a record.
roll_percentnumber- The number it landed on, from 0 up to but not including 100. It is a yes when this is below the chance. Keep it alongside the decision and the draw can be checked afterwards.
yestrue/false- True when it came up yes. This is the one to put in an If step.
Example output
{
"chance_percent": 10.0,
"decision": "Yes",
"roll_percent": 4.37,
"yes": true
}Generate a random code
Make a code nobody can guess: a password, an access token, a one-time PIN, a batch of coupon codes. Every character comes from quantum noise, which is as unguessable as randomness gets - no formula behind it to work backwards from. Letters and numbers leave out the characters people misread, so a code read off a screen can be typed back in. One caution worth knowing: a code made here travels over the internet to get to you, so for the keys that protect your most sensitive systems, ANU itself recommends generating them on your own hardware instead.
Inputs
- Made up of
characterstext - Letters and numbers suits almost everything, and leaves out O, 0, I, l and 1 so a code cannot be misread. Add symbols for a password that has to meet a complexity rule. Numbers only is for a PIN or a verification code.One of:
letters_and_numbers(Letters and numbers),letters_numbers_and_symbols(Letters, numbers and symbols),numbers(Numbers only),hex(Hexadecimal (0-9, a-f)). Default:letters_and_numbers. - Length
lengthnumber - How many characters each code has. Six for a PIN, eight to twelve for a coupon code, twenty or more for a password or an access token.From 4 to 256. Default:
24. - How many
countnumber - How many codes to make at once - one for a password, a hundred for a coupon run. Ask for the whole batch here rather than running the step in a loop: a batch is one request against your monthly allowance, a loop is one per turn.From 1 to 100. Default:
1.
Outputs
codetext- The code. When you asked for more than one, this is the first of them.
codeslist- Every code that was made. Loop over this when you asked for a batch.
countnumber- How many codes came back.
Example output
{
"code": "7ZpQmXt3KvR9sNdB2wLy",
"codes": [
"7ZpQmXt3KvR9sNdB2wLy"
],
"count": 1
}Get random numbers
Get whole numbers between a smallest and a largest you choose - one number, or a thousand in a single step. Every number in the range is exactly as likely as every other, because each one is measured from the quantum noise of empty space in a lab at the Australian National University rather than calculated. That is what makes this the one to use when the draw has to hold up to questions later: a prize, an audit sample, an allocation someone might dispute.
Inputs
- Smallest number
minimumnumberRequired - This number can come up.Default:
1. - Largest number
maximumnumberRequired - This number can come up too.Default:
100. - How many
countnumber - How many numbers to get. Ask for the whole batch here rather than running the step in a loop: a batch is one request against your monthly allowance, a loop is one per turn.From 1 to 1024. Default:
1. - Allow the same number more than once
allow_repeatstrue/false - On, five dice rolls can all come up six. Turn it off for a draw where every number has to be different, like six lottery numbers out of forty-nine.Default:
true.
Outputs
countnumber- How many numbers came back.
numbernumber- The number. When you asked for more than one, this is the first of them.
numberslist- Every number that came up, in the order it was drawn. Loop over this when you asked for a batch.
Example output
{
"count": 3,
"number": 42,
"numbers": [
42,
7,
91
]
}Pick from a list
Draw one item out of a list, or several - a prize winner from the entrants, five orders to check out of yesterday's hundred, whoever is on call this week. Every item has exactly the same chance, and the choice comes from quantum noise measured in a lab rather than from a formula, so a draw made this way is one you can defend.
Inputs
- List
itemslistRequired - The things to choose between: names, email addresses, ticket numbers, anything. Type them in one per line, or point this at a list an earlier step produced. Up to 1,024 items.
- How many to pick
countnumber - How many items to draw. Ask for the whole batch here rather than running the step in a loop: a batch is one request against your monthly allowance, a loop is one per turn.From 1 to 1024. Default:
1. - Allow the same item to be picked more than once
allow_repeatstrue/false - Off, each item can win at most once - which is what a prize draw or a review sample needs. Turn it on to put every item back in the hat after each pick.Default:
false.
Outputs
countnumber- How many items were drawn.
itemtext- The item that was drawn. When you asked for more than one, this is the first of them.
itemslist- Every item that was drawn, in the order it came out. Loop over this when you asked for several.
Example output
{
"count": 2,
"item": "ada@example.com",
"items": [
"ada@example.com",
"grace@example.com"
]
}Shuffle a list
Put a list into a random order: the running order for presentations, the rotation for a support roster, the order applications get reviewed in so nobody is advantaged by having applied first. Every possible order is equally likely, from quantum noise measured in a lab.
Inputs
- List
itemslistRequired - The things to put in a random order: people on a rota, topics to present, applications to review. Type them in one per line, or point this at a list an earlier step produced. Up to 1,024 items.
Outputs
countnumber- How many items are in the list.
firsttext- Whatever ended up first - who presents first, who is reviewed first.
itemslist- The whole list, in its new order.
Example output
{
"count": 3,
"first": "Grace",
"items": [
"Grace",
"Ada",
"Katherine"
]
}