# rand

Pick randomly

rand x   rand[x]


## Pick an item from a list

Where x is a list returns one item chosen randomly from x

q)rand 1 30 45 32
32
q)rand("abc";"def";"ghi")  / list of lists
"ghi"


## Pick a value at random

Where x is an atom returns an atom of the same type.

q)rand 100
10
q)rand each 20#6  /roll twenty 6-sided dice
2 5 4 5 1 0 5 2 4 5 1 2 0 1 1 2 1 0 0 5
q)rand 3.14159
1.277572
q)rand 2012.09.12
2008.02.04
q)rand 3
afe


Right domain and range are as for Roll and Deal.

Returns a single item

rand is exactly equivalent to {first 1?x}. If you need a list result, use Roll. The following expressions all roll a million six-sided dice.

q)\ts rand each 1000000#6
264 41166192
q)\ts {first 1?x}each 1000000#6
210 41166496
q)\ts 1000000?6                     / Roll
6 8388800