Это невозможно. Ведь есть вероятность того,что карты рубашкой вверх не будут в 2 группах одинакового количества.
Program gt;
var n,i:integer;
a:array[1..1000]of integer;
begin
randomize;
read(n);
for i:=1 to n do
a[i]:=random(40)-20;
for i:=1 to n do
begin
write(a[i]:4,' ');
if(i mod 4=0)then writeln;
end;
for i:=1 to 4-n mod 4 do
write(0:4,' ');
end.
Все расписал на изображении.