use List::Util qw(shuffle); use List::MoreUtils qw(zip); %hash = zip @{[shuffle keys %hash]}, @{[values %hash]};