Qual é a melhor maneira de gerar bools aleatórios?

Eu preciso gerar valores booleanos aleatórios em um caminho crítico de desempenho.

O código que escrevi para isso é

std::random_device   rd;
std::uniform_int_distribution<> randomizer(0, 1);
const int val randomizer(std::mt19937(rd()));
const bool isDirectionChanged = static_cast<bool>(val);

Mas não pense que essa é a melhor maneira de fazer isso, pois não gosto de fazerstatic_cast<bool>.

Na web, encontrei mais algumas soluções

1 std::bernoulli_distribution

2) bool randbool = rand() & 1; Lembre-se de ligarsrand() no inicio.

questionAnswers(9)

yourAnswerToTheQuestion