RANDOM(1) fish-shell RANDOM(1)

# [NAME](#NAME)

random - generate random number

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#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](#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
```

# [Copyright](#Copyright)

fish-shell developers

October 12, 2026 4.9

---

Document: random(1) from fish 4.9.3-r2 (Chainguard OS)
Source: https://github.com/fish-shell/fish-shell
