array_rand

Pick one or more random keys out of an array

&reftitle.description; ``int``string``array```array_rand` `array` `array` `int` `num` 1

Picks one or more random entries out of an array, and returns the key (or keys) of the random entries.

&caution.cryptographically-insecure;
&reftitle.parameters;

`array`

- The input array. Cannot be empty.

`num`

- Specifies how many entries should be picked. Must be greater than zero, and less than or equal to the length of `array`

&reftitle.returnvalues;

When picking only one entry, `array_rand` returns the key for a random entry. Otherwise, an array of keys for the random entries is returned. This is done so that random keys can be picked from the array as well as random values. If multiple keys are returned, they will be returned in the order they were present in the original array.

&reftitle.errors;

Throws a `ValueError` if `array` is empty, or if `num` is out of range.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | `array_rand` now throws a `ValueError` if `num` is out of range; previously an `E_WARNING` was raised, and the function returned &null;.
8.0.0 | `array_rand` now throws a `ValueError` if `array` is empty; previously an `E_WARNING` was raised, and the function returned &null;.
7.1.0 | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.

&reftitle.examples;

### `array_rand` example

    <?php
    $input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
    $rand_keys = array_rand($input, 2);
    echo $input[$rand_keys[0]] . "\n";
    echo $input[$rand_keys[1]] . "\n";
    ?>

&reftitle.seealso;

- `Random\Randomizer::pickArrayKeys`
- `Random\Randomizer::shuffleArray`