#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @deck = ("A H","2 H","3 H","4 H","5 H","6 H","7 H", "8 H","9 H","10 H","J H","Q H","K H", "A D","2 D","3 D","4 D","5 D","6 D","7 D", "8 D","9 D","10 D","J D","Q D","K D", "A C","2 C","3 C","4 C","5 C","6 C","7 C", "8 C","9 C","10 C","J C","Q C","K C", "A S","2 S","3 S","4 S","5 S","6 S","7 S", "8 S","9 S","10 S","J S","Q S","K S"); fisher_yates_shuffle(\@deck); print Dumper(\@deck); sub fisher_yates_shuffle { my $deck = shift; return unless @$deck; my $i = @$deck; while (--$i) { my $j = int rand ($i+1); @$deck[$i,$j] = @$deck[$j,$i]; } }