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.
The number
function outputs a random number.
{}
The arguments m
and n
may be omitted, but if specified must be convertible to integers.
[0,1)
[1,m]
''m''
is negative, (-m,0]
''m''
is equal to 0 or 1, returns 1 (or 0 if m=-1
[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]
Examples
<nowiki>{{#invoke:random|number}}</nowiki>
→<nowiki>{{#invoke:random|number|100}}</nowiki>
→<nowiki>{{#invoke:random|number|-100|-50}}</nowiki>
→<nowiki>{{#invoke:random|number|100|same=yes}}</nowiki>
→<nowiki>{{#invoke:random|number|100|same=yes}}</nowiki>
→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.
The date
function outputs a random date.
{}
''timestamp1''
and ''timestamp2''
are specified, the module outputs a random date between the two timestamps. ''timestamp1''
must be earlier than ''timestamp2''
.''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.Examples
<nowiki>{{#invoke:random|date}}</nowiki>
→<nowiki>{{#invoke:random|date|format=F j}}</nowiki>
→<nowiki>{{#invoke:random|date|1 Jan 1980|31 Dec 1999}}</nowiki>
→<nowiki>{{#invoke:random|date|1st January 1500|1st January 3000|format=g:i a, l d M Y}}</nowiki>
→<nowiki>{{#invoke:random|date|1970/06/01}}</nowiki>
→<nowiki>{{#invoke:random|date|same=yes}}</nowiki>
→<nowiki>{{#invoke:random|date|same=yes}}</nowiki>
→The item
function outputs a random item from a list.
{}
If the parameter is set to "yes", "y", "true", or "1", the same item is returned for each module call on a given page.
Example
<nowiki>{{#invoke:random|item|egg|beans|sausage|bacon|spam}}</nowiki>
→<nowiki>{{#invoke:random|item|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→<nowiki>{{#invoke:random|item|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→The list
function outputs a list in a random order.
{}
Named parameters
Code | Output | |
---|---|---|
dot | ||
pipe | ||
comma | ||
tpt-languages | ||
space | a space | |
newline | a newline character | |
any other value | other values are used without modification |
You cannot input spaces directly to the 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
<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=dot}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=space}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=;&#32;}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=foo}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|limit=3}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→<nowiki>{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→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 or parameters; its default value is "". The conjunction can be specified with either the or 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 parameter. The lowest possible is 0 and the highest possible is the length of the list.
If the parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.
Examples
<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam}}</nowiki>
→<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;}}</nowiki>
→<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;|conj=&#32;or&#32;}}</nowiki>
→<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|limit=3}}</nowiki>
→<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→<nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}</nowiki>
→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 .
Function name | Produces | Example code | Example output |
---|---|---|---|
bulleted_list | Bulleted lists | <nowiki>{{#invoke:random|bulleted_list|egg|sausage|spam}}</nowiki> | |-| unbulleted_list | Unbulleted lists| <nowiki>{{#invoke:random|unbulleted_list|egg|sausage|spam}}</nowiki> | |
horizontal_list | Horizontal bulleted lists | <nowiki>{{#invoke:random|horizontal_list|egg|sausage|spam}}</nowiki> | |-| ordered_list | Ordered lists (numbered lists and alphabetical lists)| <nowiki>{{#invoke:random|ordered_list|egg|sausage|spam}}</nowiki> | |-| horizontal_ordered_list | Horizontal ordered lists| <nowiki>{{#invoke:random|horizontal_ordered_list|egg|sausage|spam}}</nowiki> | |}
{}
|
The maximum number of list items to display can be set with the parameter. The lowest possible is 0 and the highest possible is the length of the list.
If the 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 for a full explanation of the other parameters.