I found only one std C++ way to generator random bool value: using std::bernoulli_distribution. It returns bool values and has a default constructor with probability p=0.5. So the generated boolen are "uniform" distributed.
This is perhaps the slowest variant. The internet is full of better ideas. Some use std C++ random classes but they all need some extra code to work. For example: cast int to bool, extract one bit from a 32bit integer value.
#include <random> std::random_device rd; std::mt19937 g(rd()); std::bernoulli_distribution dis_true_false; if(dis_true_false(g)) { // heads } else { // tails }