これは手強い…(ぱたり)。
#!/usr/bin/env perl
use v5.28;
use utf8;
use warnings;
use strict;
use Encode::Locale;
use feature "say";
use open IO => ":utf8";
binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";
$| = 1;
my @ a = map {/(.)$/} sort map {rand . $_} qw/ ア ツ コ ヒ /;
$" = "";
say "@ a[0 .. 1]@ a[0 .. 1]の$a[2]ー$a[3]ー入れました。";
無名サブルーチンの引数でシャッフルさせといて仮引数のエイリアスで渡せば配列宣言いらないチートを思い付いた。
$" = "";
sub {
say "@ _[0 .. 1]@ _[0 .. 1]の$_[2]ー$_[3]ー入れました。";
} -> (map {/(.)$/} sort map {rand . $_} qw/ ア ツ コ ヒ /);