I appreciate your trying to be helpful, but I wasn't actually looking for a good way to do a shuffle (that problem has been well solved by
List::Util 'shuffle'). I was wondering whether a novel (or what I thought was a novel) way of shuffling was fundamentally flawed. (It was.)
For more on how to do shuffles right and wrong, see A bad shuffle. And welcome to the wonderful world of Perl.
Caution: Contents may have been coded under pressure.