Если вы собираетесь суетиться из-за своих случайных чисел, не полагайтесь на что-нибудь встроенное. Получите хорошо документированный RNG из места, которому вы доверяете (я верю, что Boost, за что это стоит), и прочитайте документацию. Раньше стандартные ГСЧ были заведомо плохими, и я до сих пор не буду им доверять.
В качестве альтернативы используйте целочисленный ГСЧ, который дает вам дискретные значения в пределах диапазона, и разделите диапазон пополам. ГСЧ, по моему опыту, являются интегральными, а функция с плавающей точкой просто делится на верхнюю часть диапазона.
Конечно, если это правда, у вас есть свой ответ. Если целочисленный ГСЧ выдает 0, 1, 2 и 3, эквивалент с плавающей запятой будет равен 0,0, 0,25, 0,5 и 0,75, поэтому ответом является проверка <0,5. </p>
Если ГСЧ не основан на интегральных вычислениях, то он основан на вычислениях с плавающей запятой и, следовательно, неточен. В этом случае не имеет значения, тестируете ли вы <= или <, поскольку нет гарантии, что вычисление, которое должно быть точным 0,5, будет. </p>
Таким образом, ответ, вероятно, состоит в том, чтобы проверить <0,5, что, вероятно, будет правильным, если оно будет иметь значение. </p>