From BaseX Documentation
This XQuery Module contains functions for computing random values. All functions except for random:seededdouble and random:seededinteger are nondeterministic, i. e., they return different values for each call.
[edit] Conventions
Updated with Version 9.0:
All functions and errors in this module are assigned to the http://basex.org/modules/random
namespace, which is statically bound to the random
prefix.
[edit] Functions
[edit] random:double
Signatures
 random:double() as xs:double

Summary
 Returns a double value between 0.0 (inclusive) and 1.0 (exclusive).

[edit] random:integer
Signatures
 random:integer() as xs:integer
random:integer($max as xs:integer) as xs:integer

Summary
 Returns an integer value, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive)

Errors
 bounds : the maximum value is out of bounds.

[edit] random:seededdouble
Signatures
 random:seededdouble($seed as xs:integer, $num as xs:integer) as xs:double*

Summary
 Returns a sequence with $num double values between 0.0 (inclusive) and 1.0 (exclusive). The random values are created using the initial seed given in $seed .

[edit] random:seededinteger
Signatures
 random:seededinteger($seed as xs:integer, $num as xs:integer) as xs:integer*
random:seededinteger($seed as xs:integer, $num as xs:integer, $max as xs:integer) as xs:integer*

Summary
 Returns a sequence with $num integer values, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive). The random values are created using the initial seed given in $seed .

Errors
 bounds : the maximum value is out of bounds.
negative : the number of values to be returned is negative.

[edit] random:gaussian
Signatures
 random:gaussian($num as xs:integer) as xs:double*

Summary
 Returns a sequence with $num double values. The random values are Gaussian (i.e. normally) distributed with the mean 0.0. and the derivation 1.0.

[edit] random:seededpermutation
Signatures
 random:seededpermutation($seed as xs:integer, $items as item()*) as item()*

Summary
 Returns a random permutation of the specified $items . The random order is created using the initial seed given in $seed .

[edit] random:uuid
Signatures
 random:uuid() as xs:string

Summary
 Creates a random universally unique identifier (UUID), represented as 128bit value.

Examples


random:uuid() eq random:uuid() will (most probably) return the boolean value false .

[edit] Errors
Updated with Version 9.0:
Code
 Description

bounds
 The specified maximum value is out of bounds.

negative
 The specified number of values to be returned is negative.

[edit] Changelog
 Version 9.0
 Updated: error codes updated; errors now use the module namespace
 Version 8.5
 Version 8.0
The module was introduced with Version 7.5. It includes some functionality which was previously located in the Math Module.