I have been working on a project to generate random data using Python. Since I am not using this project for any security application I opted for the Python pseudo-random number generator ` random `

.

In order to randomly select items from a list three option presented themselves to me `random.choice`

, `random.choices`

and `random.sample`

.

**random.choice**

Selects one item randomly from list of length *n*.

```
>>> import random
>>> random.choice([4,2,6,7,1])
6
>>> random.choice([4,2,6,7,1])
4
>>>
```

**random.choices**

Selects *k* items randomly from list of length *n*.

```
>>> import random
>>> random.choices([4,2,6,7,1],k=2)
[2, 6]
>>> random.choices([4,2,6,7,1],k=20)
[6, 4, 1, 6, 1, 1, 6, 7, 7, 2, 4, 4, 2, 2, 6, 1, 4, 6, 7, 4]
```

**random.sample**

Select *k* items randomly from list of length *n*, without replacement. Randomly select items are removed from the list, therefore if *k* > *n* there is an error.

```
>>> import random
>>> random.sample([4,2,6,7,1],k=3)
[6, 4, 1]
>>> random.sample([4,2,6,7,1],k=20)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/random.py", line 363, in sample
raise ValueError("Sample larger than population or is negative")
ValueError: Sample larger than population or is negative
```

Hopefully , I have given a concise introduction random item selection from a list in Python. Refer to the documentation for more functions and information.