use List::Util qw( shuffle ); my @jumpedArray = map { $dataArray[$_*2+0], $dataArray[$_*2+1] } shuffle 0 .. @dataArray/2-1; #### my @dataArray = ( [ \@inputValue1, \@outputValue1 ], [ \@inputValue2, \@outputValue2 ], ... ); #### use List::Util qw( shuffle ); my @jumpedArray = map { $dataArray[$_] } shuffle 0 .. $#dataArray;