Я проводил тесты с секундомером. 100000 итераций:
System.Random rnd = new System.Random();
if (rnd.Next(2) == 0)
trues++;
ЦП любят целые числа, поэтому метод Next (2) был быстрее. 3700 против 7500 мс, что довольно много. Также: я думаю, что случайные числа могут быть узким местом, я создавал около 50 на каждый кадр в Unity, даже с крошечной сценой, которая заметно замедляла мою систему, поэтому я также надеялся найти метод для создания случайного bool. Так что я тоже попробовал
if (System.DateTime.Now.Millisecond % 2 == 0)
trues++;
но вызов статической функции был еще медленнее - 9600 мс. Стоит попробовать. Наконец, я пропустил сравнение и создал только 100 000 случайных значений, чтобы убедиться, что сравнение int и double не влияет на прошедшее время, но результат был почти таким же.