How can add to a pandas dataframe a randomly one hot encoded pandas values?

For example, given three new columns, I would like to uniformly randomly assign a True value in one of the rows and False in the others. So far I tried the following:

```
np.random.seed(0)
batch['A'] = np.random.choice([True, False], df.shape[0])
batch['B'] = np.random.choice([True, False], df.shape[0])
batch['C'] = np.random.choice([True, False], df.shape[0])

```

However, this approach doesnt give me a one hot encoded version (in three rows only one can be true), any idea of how to create this columns properly?