Прежде всего, я бы изменил способ организации данных. Прямо сейчас у вас есть три параллельных массива, один для вопросов, один для потенциальных ответов и один для правильных ответов.
Вместо этого я бы создал структуру для хранения всех данных для одного вопроса, что-то вроде этого:
struct qa {
char question[64];
char answers[4][32];
int correct_answer;
};
Тогда я бы создал массив структур qa, каждый из которых содержал бы все данные для одного вопроса и ответа:
qa questions[] = {
{ "what color is the sky?", { "red", "green", "blue", "yellow"}, 2},
{ "When is Christmas?", {"January", "July", "September", "December"}, 3},
// ...
};
Оттуда у вас есть несколько вариантов. Если вы собираетесь задать все (или почти) все вопросы и, в первую очередь, хотите перетасовать заказ, вы можете использовать перетасовку Фишера-Йейтса, как предложил @Salvatore Previti.
Если вы задаете лишь небольшой процент вопросов в любой момент времени, это может быть довольно расточительным. В таком случае вы можете использовать (для одного примера) алгоритм выбора, изобретенный Робертом Флойдом, который я обсуждал в предыдущем ответе .