emparejar equipos en c#

Seguir
Voy a empezar a desarrollar un pequeño programa en entorno Bluej (JAVA) que diseñará lo siguiente:
Pedira un numero X de articulos (en este caso: equipos de futbol) y los emparejará aleatoriamente de dos en dos, y si el numero X es impar, un equipo quedará exento.
Ejemplo:
Inserta el numero de equipos: 7
Inserta el equipo numero 1: Real Madrid
Inserta el equipo numero 2: Dortmund
Inserta el equipo numero 3: Sevilla
Inserta el equipo numero 4: Betis
Inserta el equipo numero 5: Wolfsburgo
Inserta el equipo numero 6: Lazio
Inserta el equipo numero 7: Roma
Emparejamientos definitivos aleatoriamente:
Dortmund vs Betis
Lazio vs Wolfsburgo
Roma vs Real Madrid
Exento: Sevilla

¿cómo podría empezar a plantearmelo para codificarlo... uso arrays algunas pistas?

1 Solución propuesta

Sin conocer el lenguaje, los conceptos básicos serían los siguientes:
1. Una vez obtenido el número de elementos, crear un ArrayList A y llenarlo con los elementos.
2. Crear otro ArrayList numérico X con la misma cantidad de elementos y llenarlo con los números desde 0 a n-1
3. Crear otro ArrayList numérico Y con la misma cantidad de elementos. Este ArrayList se usará para crear una serie al azar de los elementos.
4. Para llenar el ArrayList Y con una lista al azar, se repite el siguiente procedimiento desde m=n-1 hasta m = 0, con paso -1.
4.a. Elegir un número al azar (z) entre 0 y m.
4.b. Se copia en la posición ArrayList Y(m) el valor de ArrayList X(z)
4.c. Se aplica la función public E remove(int index) sobre el ArrayList X(z)
5. Se borra el ArrayList Y, ya no es necesario y está sin valores (fueron borrados en los sucesivos 4.c)
6. Se imprimen los pares de valores usando un paso de 2:
ArrayList A(ArrayList X(0)) y ArrayList A(ArrayList X(1))
etc.
7. Si n es impar, se imprime el ArrayList A(ArrayList X(n-1) )

Adaptar al lenguaje. Saludos!