codice:
<?php 
srand ((float) microtime() * 10000000);

## Squadre
$input = array ("a", "b", "c", "d");


## Chiavi dell'array con le due squadre
## In chiavi[0] avrai la prima squadra e in $chiavi[1] la seconda
## Fai l'iterazione per tutte le squadre e mano a mano elimini le due estratte

while(count($input)!=0){

  $chiavi = array_rand ($input, 2);
  
## Salvi le squadre antagoniste nei due array
  $colonnaA[] = $input[$chiavi[0]];
  $colonnaB[] = $input[$chiavi[1]];
  //print_r($colonnaA);
## Salvo il valore temporaneamente
  $tmpElm = $input[$chiavi[1]];  

  $index  = $chiavi[0];
   
  array_splice($input, $index, 1);

## Trovi la nuova chiave per il secondo elemento inserito
## tanto le squadre non hanno i nomi uguali

  $index  = array_search($tmpElm, $input);
   
  array_splice($input, $index, 1);
  

}

## in $colonnA hai tuttle squadre che comeptono con $colonnaB
print_r($colonnaA);
print_r($colonnaB);

?>
Questo funziona
Ciao