This site works best with JavaScript enabled!

# Description: Random generator - Subset of Names Here the algorithm of the generator "Subset of Names" is described. In this random generator you can enter several names from which a subset will be chosen randomly. For example, you can draw the winner of a raffle or enter other things that you can not decide between.

## What is randomness?

Randomness is an event for which there is no causal explanation. This means that the result of a random generator may not be predictable or computable. This, however, contradicts the laws of each computer. In other words, a computer can not produce absolutely random numbers without additional peripherals. In this case we call it pseudo-random numbers. In general, you can philosophize about at which point you can actually speak about randomness.

## How are the names selected?

Theoretically, three different mechanisms for generating pseudo-random numbers are used in this generator, but two of them are only used to generate the binary string in the background.

### Random generator 1 and 2 for binary string

How these random generators work, is explained here in detail.

### Random generator 3 for name selection

The previous random number generators produce relatively good random numbers, which, however, can further be improved. The subset is therefore always generated on server-side with the PHP function random_int(), which generates cryptographically secure pseudo-random numbers:

1
2
3
4
5
6
7
8
9
10
11
```// The array \$names contains all names

// Select all names
for(\$i = 1; \$i <= \$number_names; \$i++) {

\$index 		= random_int(0, count(\$names)-1);
\$random_names[] = \$names[\$index];
unset(\$names[\$index]);			// Delete entry
\$names 		= array_values(\$names);	// Reset indexes

}```