Meilleur moyen de renvoyer une valeur booléenne aléatoire

Je l’ai utilisé pendant un certain temps pour retourner soit true ou false lors de la création de fausses données de graine. Je me demande si quelqu’un a une manière meilleure, plus succincte ou verbeuse de retourner soit true soit false .

 rand(2) == 1 ? true : false 

Un extrait déclaratif utilisant Array # sample :

 random_boolean = [true, false].sample 

Que diriez-vous de supprimer l’opérateur ternaire?

 rand(2) == 1 

J’aime utiliser le rand :

rand < 0.5

Edit : Cette réponse utilisée pour lire rand > 0.5 mais rand < 0.5 est plus correcte techniquement. rand retourne un résultat dans la plage semi-ouverte [0,1), donc l'utilisation de < conduit à des chances égales de plages semi-ouvertes [0,0,5) et [0,5,1]. L'utilisation de > conduirait à des cotes UNEQUALES de la plage fermée [0,0,5] et de la plage ouverte (0,5).

J’utilise habituellement quelque chose comme ceci:

 rand(2) > 0 

Vous pouvez également étendre Integer pour créer une méthode to_boolean:

 class Integer def to_boolean !self.zero? end end