Как безопасно рандомизировать порядок символов в строке?

[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g'; cdaab[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g'; dbaac[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g'; cbada[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g'; adcba[user@notebook ~]$ 

AFAIK это безопасный способ рандомизации порядка строк. Но может ли это быть сделано только с одной командой perl?

Это зависит от того, что вы подразумеваете под «одной командой perl». Это, безусловно, может быть сделано с некоторым рефактором вашего подхода:

 echo abcde | perl -MList::Util=shuffle -lpe '$_ = join "", shuffle split //'