# About Random Number Generator & Checker

## Random Number Generation

Random Number Generators (RNGs) or Random Event Generators (REGs) are designed to produce a sequence of numbers or other outcomes which has no pattern. The sequence should therefore be entirely unpredictable using any known means. RNGs have a variety of uses in parapsychological research. Most important are (a) the determination of sequences of targets in ESP research, and (b) as output that participants in psychokinesis (PK) research can attempt to influence paranormally. Random numbers also have many other uses - e.g., in cryptography, computer games, online gambling, lotteries and simulations.

"True" random numbers must be generated using a method that, in theory, is completely random and unpredictable. Such methods include those utilising electronic noise, radio noise, or radioactive decay which are processes that physicists believe are indeterminate. Researchers have developed various hardware devices that can be connected to a computer to generate such "true" random numbers. An example is the Psyleron REG-1.

"Pseudo" Random Number Generators (PRNGs) produce a sequence of numbers using a method (usually a software algorithm) which is predetermined and therefore, in theory, predictable. However the algorithm is sufficiently complex to prevent the sequence being predicted unless an initial "seed" value is known. PNRGs use various unpredictable ways to seed the algorithm, such as ambient temperature or stock market fluctuations. A common seed is the computer's system clock time at the moment when the generation begins.

The "random numbers" used in all tests, games and demonstrations on our site are generated by the *JavaScript* Math.random() method. This software PNRG algorithm is seeded by time, and produces a floating point number between 0 and 1. This number can then be transformed computationally into the values required for particular applications. For example, the output can be transformed into integer (whole number) values from 1 to 5, representing the five different ESP card symbols.

## Checking the Output from RNGs

The output from a RNG or PRNG should ideally be checked to ensure that the sequence shows no evidence of non-randomicity. Usually, two checks are performed. First, the data are checked for **equiprobability** to ensure that each number is equally likely to be generated. Second, the numbers are checked for **independence** to ensure that there are no particular sequential patterns.

Of course, data may pass the check for equiprobability but fail the check for independence. For example, the sequence 01010101 shows the two outcomes (0 and 1) to be equally likely, but the data are not independent because 0 is always followed by 1 which is always followed by 0.

When checking for independence it is possible to look for complex sequential patterns but, in practice, a check on the independence of **pairs** of successive numbers will usually suffice. For example, if generating a sequence of 0s and 1s, the independence check will see whether the 00, 01, 10, and 11 pairs are equally probable (which they are not in the above example).

An interesting way to examine your browser's JavaScript RNG is to use our free online Randomness Checker. This App also doubles as a visualisation trainer and random art generator

## Using the Random Number Generator

Random integers can be generated as (a) Open Sequence, (b) Closed Sequence, or (c) Unique Values.

With the Open Sequence, each integer can appear any number of times.

With the Closed Sequence, each integer will appear an equal number of times.

With Unique Values, each integer can only appear ONCE. This procedure can be used, for example, to select lottery numbers.

To generate an Open or Closed Sequence, type in the total number of integers (maximum 100,000 for Open Sequence, or 10,000 for Closed Sequence). Then type in the lowest and highest integer values (these must be between 0 and 9999). Then click GO.

For example, to generate a target sequence of 25 ESP cards, number of integers = 25, lowest integer = 1, highest integer = 5. Each integer represents one of the ESP cards (e.g., 1 = Circle, 2 = Cross, 3 = Waves, 4 = Square, 5 = Star).

A sequence of Unique Values is also generated in the same way. However, a maximum of 1,000 unique values can be generated. For obvious reasons, the number of different integer values cannot be less than the number of integers to generate (e.g., you cannot generate 10 unique values between 1 and 9).

If there are sufficient data in your Open or Closed sequences, you will be given the option to perform checks for equiprobability (Open Sequence only) and for pairwise independence. The statistical tests used for these checks are the *Chi-Square Goodness of Fit Test *(for equiprobability) and the *Chi-Square Contingency Table Test* (for independence). Equiprobability and independence are assumed when the two-tailed probability associated with Chi-Square is greater than 0.10 (i.e., there is no evidence of a significant deviation from randomness).

The randomicity checks can also be used to test the *JavaScript* Math.random() method used in our tests and games. To do this, generate 100,000 Open Sequence integers using whichever range of values you prefer. Please note that, *by chance*, the randomicity checks will indicate non-random sequences about 1 time in 10. An occasional non-random outcome does NOT, therefore, indicate a systematic problem with the Math.random() method.

### Disclaimer

While every effort has been taken to ensure the error-free operation of this random number generator, no warranty of its accuracy or suitability for any purpose is made or implied, and no liability will be accepted for any inconvenience, loss or damage caused directly or indirectly from its use.