Ok, quindi se una squadra perde viene eliminata, giusto?
Secondo me puoi farlo sempre con un vettore, ma eviterei di riordinarlo come fai tu... Una possibile idea sarebbe di definire una classe o una struttura "squadra", poi creare un array di squadre come hai fatto. L'operazione di sorteggio di due squadre la puoi ricondurre alla generazione di due numeri casuali compresi tra zero e n-1, dove n è il numero di squadre.
Per quanto riguarda la decisione tra chi vince e chi perde puoi sempre implementare una funzione
codice:... gioca_partita(Squadra a, Squadra b)
che prenda in input le due squadre che hai sorteggiato e restituisca in output quello che vuoi: la vincente, un valore convenzionale, il risultato, ecc.
Al passaggio successivo puoi memorizzare le squadre rimaste in un vettore più piccolo (la sua dimensione sarà la metà di quello di partenza) e proseguire fino al match finale.

Rispondi quotando