Pyth, 2725 bytes
Yet another Fisher-Yates implementation. Is essentially the same as @Sp3000 python solution, just in pyth.
FNrlQ1KONJ@QN XQN@QK XQKJXXQN@QKKJ)Q
Can probably be golfed further.Thanks to @Jakube for the swapping trick
<implicit> Q=input()
FNrlQ1 For N in len(Q) to 1, only goes len Q-1 because how range implemented in pyth
KON K = random int 0-N
J@QN J=Q[N]
<space> Suppress print
XQN@QK Q[N]=Q[K]
<space> Suppress print
XQKJ XXQN@QKKJ Swap K and Q[K]=JJ
) End for
Q Print Q