Вот вам алгоритм:
var min = 1, max = 16, r, i, tmp, mas = Array(max-min+1);
for( i = 0; i < mas.length; ++i ) // заполняем массив номерами команд
mas[i] = i+min;
for( i = 0; i < mas.length; ++i ) { // тасуем
r = Math.floor( Math.random() * (max-min+1) );
tmp = mas[i];
mas[i] = mas[r];
mas[r] = tmp;
}
// Внимание, нет никакой защиты на случай, если количество команд нечетное.
for( i = mas.length - 2; i >= 0; i -= 2 ) // группируем попарно
mas.splice( i, 2, [ mas[i], mas[i+1] ] );
alert( mas.join( "\n" ) );