На каком языке вы кодируете? Невозможно дать однозначный ответ, не зная вашей проблемы хорошо.
Если вы находитесь в .NET, GDI - ваш лучший выбор для создания такого точечного поля, но это не просто сделать алгоритмически, и возможно, что они были нарисованы от руки.
Еще одна более легкая возможность - использовать поле с равномерно распределенными кругами, даже если оно не такое элегантное.
Затем вы выбрали бы два цвета, которые (как)? Не должны различаться (определенно?) Дальтониками.
Теперь вы рисуете число в квадратном поле (используя одну из 10 матриц для чисел 0-9, представляющих каждый символ числа с размерами, совместимыми с полем круга), используя (ограниченные) случайные вариации двух цветов, которые человек не должен различать.
Другими словами, если человек не должен различать красный и зеленый, вы бы сделали персонаж, используя оттенки красного поверх оттенков зеленого фона.
Возможно, вам понадобятся функции HUE> RGB, для .NET вам придется искать библиотеку (я помню, как использовал одну из codeproject).