Skip to main content
Use the rand function in APL to generate pseudo-random numbers. This function is useful when you want to introduce randomness into your queries. For example, to sample a subset of data, generate test data, or simulate probabilistic scenarios.

For users of other query languages

If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.
In Splunk SPL, the random() function returns a pseudo-random integer between 0 and 2^31-1. You often divide this value to produce a float between 0 and 1. In APL, the rand() function directly returns a float in the range [0, 1), so there’s no need to divide or scale.
| eval r=random()/2147483647
ANSI SQL uses the RAND() function to generate a float between 0 and 1. However, SQL typically doesn’t generate a new random value for every row unless you call RAND() inside a subquery or use it with a specific expression. In APL, rand() behaves like a row-level function and produces a new value for each row automatically.
SELECT RAND() as r;

Usage

Syntax

rand()
rand(range)

Parameters

NameTypeDescription
rangeintegerOptional: A positive integer that specifies the upper exclusive limit of the range where you want to generate pseudo-random integers. The lower inclusive limit is 0.

Returns

Without range: A real number in the range between 0 (inclusive) and 1 (exclusive). Each call returns a pseudo-random float. With range: An integer in the range between 0 (inclusive) and range (exclusive).

Example

Query
['sample-http-logs']
| extend random = rand()
Run in Playground Output
_timerandom
2024-07-10T14:32:00Z0.6324890121902683
I