# 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]`.