# random - generate random number

## Synopsis

    random
    random SEED
    random START END
    random START STEP END
    random choice [ITEMS ...]

## Description

`random` generates a pseudo-random integer from a uniform distribution. The range (inclusive) depends on the arguments.

No arguments indicate a range of 0 to 32767 (inclusive).

If one argument is specified, the internal engine will be seeded with the argument for future invocations of `random` and no output will be produced.

Two arguments indicate a range from START to END (both START and END included).

Three arguments indicate a range from START to END with a spacing of STEP between possible outputs.

`random choice` will select one random item from the succeeding arguments.

The -h or --help option displays help about using this command.

Note that seeding the engine will NOT give the same result across different systems.

You should not consider `random` cryptographically secure, or even statistically accurate.

## Example

The following code will count down from a random even number between 10 and 20 to 1:

    for i in (seq (random 10 2 20) -1 1)
        echo $i
    end

And this will open a random picture from any of the subdirectories:

    open (random choice **.jpg)

Or, to only get even numbers from 2 to 20:

    random 2 2 20

Or odd numbers from 1 to 3:

    random 1 2 3 # or 1 2 4