Пока не совсем понял, что у вас в массиве обозначает answer? и что за +10
как данный массив можно превратить непосредственно в "тест"?
var div = document.createElement('div');
//.....
//наполняем див заданием и ответами
//.....
document.body.appendChild(div);
В начале скрипта вы создаёте несколько массивов: ответов, чекбоксов и кнопок. Сразу замечу, что в массиве чекбоксов у вас 4 элемента, а не 2 как в остальных.
Затем вы перебираете массив ответов (две итерации). В каждой итерации вы проверяете чекбокс с соответствующим номером. Другими словами, чекбоксы "голубое" и "желтое" вы не проверяете вообще, потому что они имеют номера 3 и 4 (т.е. индексы 2 и 3), а это за пределами перебора. Это ошибка номер один.
Для каждого чекбокса вы проверяете условие галки и присваиваете функцию onclick, только если галка есть. Но в начале скрипта галки 100% нет, потому что пользователь только что загрузил страницу. Поэтому функция будет присвоена исключительно с alert('false'). Далее, что бы вы ни выбирали в чекбоксах, к кнопке УЖЕ привязана функция с "false" внутри, и в этой функции нет никакой дополнительной логики, только команда вывести "false". Проверок при нажатии не происходит.
Невзирая на это, фундаментальным изъяном вашего подхода я считаю тот факт, что вам приходится указывать одну и ту же константу (жёлтое) в трех местах сразу. Любая опечатка или даже просто неточность( типа желтое, Жёлтое, или лишний пробел в конце) приведёт к тому, что проверка не пройдёт и будет false.
Да даже количество элементов должно совпадать в массиве ответов и кнопок. Конечно, это логично, что должно быть так, но вам вручную надо следить за этим. Например, добавили новый вопрос, но забыли вписать ответ - и кнопка на последнем вопросе вообще не будет работать. А если где-то в середине массива ответов пропустили что-то, то будет сдвиг по фазе для половины вопросов.
В общем, очень много мест для потенциальных ошибок при данном подходе.
Исправляется подходом, который я описал в начале своего ответа, когда все данные описываются в отдельной структуре. Кроме того, отдельная структура банально удобней в плане наполнения контентом, чем клонирование html-кода для каждого вопроса.
Осталось потратить 30 минут, чтобы переписать код, соблюдая логику того, что у вас происходит. Судя по всему, вам понадобится еще несколько часов на то, чтобы подтянуть сам язык JavaScript и программирование вообще (разобраться, что такое циклы, ветвления, как работают функции-обработчики событий и т.д.)