# Python: Randomize the order of the values of an list

## Python List: Exercise - 221 with Solution

Write a Python program to randomize the order of the values of a list, returning a new list.

- Uses the Fisher-Yates algorithm to reorder the elements of the list.
- random.shuffle provides similar functionality to this snippet.

From Wikipedia,

The Fisher–Yates shuffle is an algorithm for generating a random permutation of a finite sequence—in plain terms, the algorithm shuffles the sequence. The algorithm effectively puts all the elements into a hat; it continually determines the next element by randomly drawing an element from the hat until no elements remain. The algorithm produces an unbiased permutation: every permutation is equally likely. The modern version of the algorithm is efficient: it takes time proportional to the number of items being shuffled and shuffles them in place.

**Sample Solution:**

**Python Code:**

```
from copy import deepcopy
from random import randint
def shuffle_list(lst):
temp_lst = deepcopy(lst)
m = len(temp_lst)
while (m):
m -= 1
i = randint(0, m)
temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]
return temp_lst
nums = [1, 2, 3, 4, 5, 6]
print("Original list: ",nums)
print("\nShuffle the elements of the said list:")
print(shuffle_list(nums))
```

Sample Output:

Original list: [1, 2, 3, 4, 5, 6] Shuffle the elements of the said list: [3, 2, 4, 1, 6, 5]

**Flowchart:**

## Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:

**Python Code Editor:**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Write a Python program to map the values of a list to a dictionary using a function, where the key-value pairs consist of the original value as the key and the result of the function as the value.

**Next:** Write a Python program to get the difference between two given lists, after applying the provided function to each list element of both.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

## Python: Tips of the Day

**Returns True if the provided function returns True for every element in the list, False otherwise:**

Example:

def tips_every(lst, fn=lambda x: x): return all(map(fn, lst)) print(tips_every([2, 4, 3], lambda x: x > 1)) print(tips_every([1, 2, 3]))

Output:

True True

**Weekly Trends**- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join
- JavaScript functions Exercises
- Python Tutorial
- Python Array Exercises
- SQL Cross Join
- C# Sharp Array Exercises