# List.Random

Updated on

List.Random is a Power Query M function that generates a list of random numbers between 0 and 1, given the number of values to generate and an optional seed value. The function returns a list of random numbers, with the same list generated for each call if a seed value is specified.

Compatible with: Power BI Service Power BI Desktop Excel Microsoft 365

## Syntax

List.Random(
count as number,
optional seed as nullable number,
) as list

## Description

The List.Random function generates a list of random numbers between 0 and 1. By specifying the count parameter, you can determine the length of this list. Additionally, an optional seed value can be provided to produce a consistent set of random numbers upon each execution.

## Examples

Here’s a few examples of the List.Random function.

### Generating Basic Random Numbers

If you’re just starting out and want to see the function in its simplest form, here’s how you can generate a list of three random numbers between 0 and 1:

// Output: { 0.982217873, 0.744085241, 0.281192752 }
List.Random( 3 )

### Consistent Random Numbers with Seed Value

Sometimes, you might want to produce the same list of random numbers every time you run the function. This can be achieved by specifying a seed value. For instance, using a seed value of 2:

// Output: { 0.771093898, 0.404162595, 0.165998677 }
List.Random( 3, 2 )

### Simulating Random Events

Imagine you’re creating a game or a statistical model and you need to simulate random events, like the outcome of a coin toss. The List.Random function can be handy here. The following code simulates the results of 10 coin tosses, where 1 represents heads and 0 represents tails:

// This might produce a list like: {1, 0, 1, 1, 0, 0, 1, 0, 1, 1}
List.Transform(
List.Random(10),
each if _ > 0.5 then 1 else 0
)

### Generating Random Colors for Design

If you’re working on a design project or creating visualizations, generating random colors can be useful. Here’s how you can produce a list of three random RGB color codes using the List.Random function:

// Your output may produce: "#18f043"
let
randomnumbers = List.Random(3),
transformNum =
List.Transform(
randomnumbers,
each Text.End("00" & Number.ToText(Number.RoundDown(255 * _), "x"), 2 )
),
combineText = "#" & Text.Combine( transformNum )
in
combineText

You can use the List.Random function in tandem with a character set to generate robust passwords. Here’s an example that crafts an 8-character password:

let
chars    = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
List.Accumulate (
List.Random ( 8 ),
"",
( state, current ) =>
state & Text.Middle ( chars, Number.RoundDown ( Text.Length ( chars ) * current ), 1 )
)
in