def super_shuffle(lst):
    new_lst = copy.copy(lst)
random.shuffle(new_lst)
for old, new in zip(lst, new_lst):
    if old == new:
        pass
Python: How to random shuffle a list where each variable will end up in a new place