Hola bulc.
La cantidad de imágenes involucradas, no me genera ningún tipo de problema. En este ejemplo uso 24 imágenes:
Código Delphi
[-]
...
implementation
var
vImage : array of TImage;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
SetLength(vImage, 24);
for i := 0 to ImageList1.Count-1 do
begin
vImage[i] := TImage(FindComponent('Image'+IntToStr(i+1)));
vImage[i].Picture.Bitmap.Width := 32;
vImage[i].Picture.Bitmap.Height := 32;
ImageList1.GetBitmap(i, vImage[i].Picture.Bitmap );
end;
Randomize;
end;
procedure TForm1.btnMergeClick(Sender: TObject);
var
a,b,i: Integer;
p: TPoint;
begin
for i := Low(vImage) to High(vImage) do
begin
a := Random(24);
b := Random(24);
p.X := vImage[a].Left;
p.Y := vImage[a].Top;
vImage[a].Left := vImage[b].Left;
vImage[a].Top := vImage[b].Top;
vImage[b].Left := p.X;
vImage[b].Top := p.Y;
end;
end;
Salida:
Saludos