# Python 2, 96 bytes <!-- language: lang-py --> from random import* L=input() i=len(L)-1 while i:j=randint(0,i);L[i],L[j]=L[j],L[i];i-=1 print L A straightforward implementation of the [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle). Getting random numbers from Python is *expensive*... Takes input as a Python list, e.g. `[1, 2, 3]`.