Jump to content

Module:Random/doc

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mr. Stradivarius (talk | contribs) at 15:07, 14 November 2013 (add to intro blurb). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


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.

{{#invoke:random|number|m|n}}

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 .
  • With one argument, returns an integer in the range . m must be positive.
  • With two arguments, returns an integer in the range . m and n can be either positive or negative; however, n must be greater than or equal to m, otherwise it is ignored and the module returns an integer in the range .

Examples (refresh)

  • {{#invoke:random|number}} → 0.20212597875024
  • {{#invoke:random|number|100}} → 49
  • {{#invoke:random|number|-100|-50}} → -73

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.

Item

The item function outputs a random item from a list.

{{#invoke:random|item|list item 1|list item 2|list item 3|...}}

Example (refresh)

  • {{#invoke:random|item|egg|beans|sausage|bacon|spam}} → egg

List

The list function outputs a list in a random order, with an optional separator.

{{#invoke:random|item|list item 1|list item 2|list item 3|...|sep=separator}}

The separator can be specified with either the |sep= or |separator= parameters.

Possible separator values:

Code Output
dot  ·
pipe |
comma ,
tpt-languages ⧼tpt-languages-separator⧽
space a space
any other value other values are used without modification

You cannot input spaces directly to the |sep= parameter due to limitations in MediaWiki's template syntax. However, it is possible to work around this by using HTML entities. You can use   to represent a normal space, and   to represent a non-breaking space.

Examples (refresh)

  • {{#invoke:random|list|egg|beans|sausage|bacon|spam}} → beanssausagebaconeggspam
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=dot}} → egg · beans · spam · bacon · sausage
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=space}} → beans spam sausage egg bacon
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=; }} → beans; spam; egg; bacon; sausage
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=foo}} → spamfoobeansfoosausagefooeggfoobacon

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.

{{#invoke:random|item|list item 1|list item 2|list item 3|...|sep=separator|conj=conjunction}}

The separator can be specified with either the |sep= or |separator= parameters; its default value is ", ". The conjunction can be specified with either the |conj= or |conjunction= 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.

Examples (refresh)

  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam}} → bacon, spam, sausage, egg and beans
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; }} → sausage; egg; spam; beans and bacon
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; |conj= or }} → bacon; beans; spam; egg or sausage

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 Module:List.

Function name Produces Example code Example output (refresh)
bulleted_list Bulleted lists {{#invoke:random|bulleted_list|egg|sausage|spam}}
  • spam
  • sausage
  • egg
unbulleted_list Unbulleted lists {{#invoke:random|unbulleted_list|egg|sausage|spam}}
  • egg
  • spam
  • sausage
horizontal_list Horizontal bulleted lists {{#invoke:random|horizontal_list|egg|sausage|spam}}
  • sausage
  • egg
  • spam
ordered_list Ordered lists (numbered lists and alphabetical lists) {{#invoke:random|ordered_list|egg|sausage|spam}}
  1. egg
  2. sausage
  3. spam
horizontal_ordered_list Horizontal ordered lists {{#invoke:random|horizontal_ordered_list|egg|sausage|spam}}
  1. sausage
  2. egg
  3. spam
Basic usage
{{#invoke:random|function|list item 1|list item 2|list item 3|...}}
All parameters
{{#invoke:random|function
|first item|second item|third item|...
|start           = start number for ordered lists
|marker          = type of marker for ordered lists
|list_style_type = type of marker for ordered lists (uses CSS)
|class           = class
|style           = style
|list_style      = style for the list
|item_style      = style for all list items
|item_style1     = style for the first list item |item_style2 = style for the second list item |...
|indent          = indent for horizontal lists
}}

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