Całkiem niezły kod. Duży plus za jsona i bawienie się najnowszym standardem. Mam tylko niewielkie uwagi:
void load(std::vector<Quiz>&);
nazwa powinna mówić coś więcej. Co ładuje, w jaki sposób.
play(quizzes[choise - 1]);
Wchodzi tester oprogramowania do baru i prosi 99999 piw :D Sprawdz czy użytkownik nie spytal o 999999 quiz :p
https://youtu.be/I0NGCKOeT1E
Literówka w choise.