line.split
returns a list that is only 1 element in length (the line itself) since your data presumably has no whitespace interspersed with it. Then you turn it into a list (which does nothing other than make a shallow copy) so you end up shuffling a list of length 1 -- which leads to a not-so-random result :-).
The fix is to get rid of the split
:
for line in filein:
zzz = line.rstrip('\n')
yyy = list(zzz)
random.shuffle(yyy)
zzzz = ''.join(yyy)
fout.write(zzzz + '\n')