Вы получили простое задание, но это не значит, что код нужно написать абы как, лишь бы результат был =). Элементарные вещи стоило бы использовать,как то: автозагрузка классов, шаблонизация.
0. Код на облачном диске. Почему не гитхаб? Это же удобнее (и плюс в карму=).
1. Инклуд файлов, вместо автозагрузки классов. Написать автозагрузчик - дело пяти минут. Даже одна минута, если использовать composer.
2. Разделение мух и котлет. Код отдельно, html-разметка отдельно. Простейший php-шаблонизатор - это тоже пять-десять минут.
Вот так вообще нельзя писать:
echo '<tr><th scope="col">Первый круг</th></tr>';
3. Разделение обязанностей. У вас один класс и файлы загружает, и читает загруженные, и турнирную таблицу рассчитывает и рендерит ее.
4.
range(0, 19);
Почему 20 элементов? Почему не 30? Откуда это число взялось? Его не должно быть в коде.
5.
$probablePairsArr[] = range(0, 19);
$probablePairsArr = $probablePairsArr[0];
Интересный финт. В чём его сакральный смысл - не ясно. Да и использование локальной переменной здесь не требуется. Можно сразу создавать массив в свойстве класса.
Наверное всё. Больше там ничего нет.