Random/doc

**Script error: No such module "RightBox".**
This module contains a number of functions that use random numbers. It can output random numbers, select a random item from a list, and reorder lists randomly. The randomly reordered lists can be output inline, or as various types of ordered and unordered lists. The available functions are outlined in more detail below.

## Number

The `number` function outputs a random number.

```

```

The arguments `m` and `n` may be omitted, but if specified must be convertible to integers.

* With no arguments, returns a real number in the range

[
0
,
1
)

{\displaystyle [0,1)}

.
* With one argument, returns an integer in the range

[
1
,
m
]

{\displaystyle [1,m]}

, or, if `*m*` is negative,

(
−
m
,
0
]

{\displaystyle (-m,0]}

. If `*m*` is equal to 0 or 1, returns 1 (or 0 if

# m
−
1

{\displaystyle m=-1}

).
* With two arguments, returns an integer in the range

[
m
,
n
]

{\displaystyle [m,n]}

. `*m*` and `*n*` can be either positive or negative. If `*m*` is greater than `*n*`, returns an integer in the range

[
n
,
m
]

{\displaystyle [n,m]}

 instead.
* If the Template:Para parameter is set to "yes", "y", "true", or "1", the same random number is returned for each module call on a given page.

**Examples**

* `{{#invoke:random|number}}` → **Script error: No such module "random".**
* `{{#invoke:random|number|100}}` → **Script error: No such module "random".**
* `{{#invoke:random|number|-100|-50}}` → **Script error: No such module "random".**
* `{{#invoke:random|number|100|same=yes}}` → **Script error: No such module "random".**
* `{{#invoke:random|number|100|same=yes}}` → **Script error: No such module "random".**

The documentation for this function is partly taken from the Scribunto Lua reference manual, which is in turn based on the Lua 5.1 Reference Manual, available under the MIT License.

## Date

The `date` function outputs a random date.

```

```

* If no timestamp arguments are specified, the module outputs a random date in the current year.
* If `*timestamp1*` and `*timestamp2*` are specified, the module outputs a random date between the two timestamps. `*timestamp1*` must be earlier than `*timestamp2*`.
* If only `*timestamp1*`is specified, the module outputs a random date between the Unix epoch (1 Jan 1970) and the timestamp. `*timestamp1*` must not be earlier than 1 Jan 1970.
* Formatting can be specified with the Template:Para parameter. The default formatting is "hh:mm, DD Month YYYY (UTC)" (the same as the default Wikipedia timestamp).
* The timestamps and the Template:Para parameter accept values compatible with the #time parser function. Please see the #time documentation for the full range of possible input values and formatting options.
* If the Template:Para parameter is set to "yes", "y", "true", or "1", the same date is returned for each module call on a given page.

**Examples**

* `{{#invoke:random|date}}` → **Script error: No such module "random".**
* `{{#invoke:random|date|format=F j}}` → **Script error: No such module "random".**
* `{{#invoke:random|date|1 Jan 1980|31 Dec 1999}}` → **Script error: No such module "random".**
* `{{#invoke:random|date|1970/06/01}}` → **Script error: No such module "random".**
* `{{#invoke:random|date|same=yes}}` → **Script error: No such module "random".**
* `{{#invoke:random|date|same=yes}}` → **Script error: No such module "random".**

## Item

The `item` function outputs a random item from a list.

```

```

If the Template:Para parameter is set to "yes", "y", "true", or "1", the same item is returned for each module call on a given page.

**Example**

## List

The `list` function outputs a list in a random order.

```

```

**Named parameters**

* Template:Para or Template:Para - an optional separator for the list items. Some values are special; see the table below.
* Template:Para - the maximum number of list items to display. The lowest possible is 0 and the highest possible is the length of the list.
* Template:Para - if this is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.

Possible separator values

You cannot input spaces directly to the Template:Para parameter due to limitations in MediaWiki's template syntax. However, it is possible to work around this by using HTML entities. You can use `&#32;` to represent a normal space, and `&nbsp;` to represent a non-breaking space.

**Examples**

## Text list

The `text_list` function outputs a list in a random order, text-style. In other words, it is like the `list` function, but with a different separator before the last item.

```

```

The separator can be specified with either the Template:Para or Template:Para parameters; its default value is ", ". The conjunction can be specified with either the Template:Para or Template:Para parameters; its default value is " and ". The separator and the conjunction can be specified with the same values as the separator in the list function.

The maximum number of list items to display can be set with the Template:Para parameter. The lowest possible is 0 and the highest possible is the length of the list.

If the Template:Para parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.

**Examples**

## HTML lists

If you wish to output an HTML list in a random order, you can choose between five different functions: `bulleted_list`, `unbulleted_list`, `horizontal_list`, `ordered_list`, and `horizontal_ordered_list`. These functions all use WP:Module:List.

Basic usage

```

```

All parameters
Template:Pre2

The maximum number of list items to display can be set with the Template:Para parameter. The lowest possible is 0 and the highest possible is the length of the list.

If the Template:Para parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.

Please see WP:Module:List for a full explanation of the other parameters.