#!/usr/bin/perl -p
#12345678 1 2345678 2 2345678 3 2345678 4 2345678 5 2345678
s#\B(\w+)\B#join$,,(split$,,$1)[sub{my($l,@x)=@_;$l=$x[$l]
=pop while@_;@x}->(sort{(-1,1)[rand 2]}0..-1+length$1)]#ge
# 6 12345678 7 2345678 8 2345678 9 2345678 0 2345678 1 2345
####
#!/usr/bin/perl -p
#12345678 1 2345678 2 2345678 3 2345678 4 2345678 5 2345
s#\B\w+\B#join$,,(split$,,$&)[sub{($b,@*)=@_;$b=$*[$b]=
pop while@_;@*}->(sort{(-1,1)[rand 2]}0..length$&)]#ge
#678 6 12345678 7 2345678 8 2345678 9 2345678 0 2345678
####
sort {(-1,1)[rand 2]} ...
####
sort {-.5+rand} ...
####
#!/usr/bin/perl -p
#12345678 1 2345678 2 2345678 3 2345678 4 2345678 5 23
s#\B\w+\B#join$,,(split$,,$&)[sub{($b,@*)=@_;$b=$*[$b
]=pop while@_;@*}->(sort{rand~0}0..-1+length$&)]#ge
#45678 6 12345678 7 2345678 8 2345678 9 2345678 0 23