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 whose state cannot be clearly predicted causally. 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 in practise.

## How are the names selected?

Theoretically, several different methods are used in this generator to generate pseudo-random values. For the actual answer, a PHP function for cryptographically secure pseudo random numbers is used.

### Random generators for binary string

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

### Random generator 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
```// 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
}```