Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【TS】【Ruby】boolean値をランダムに返す方法をざっくりまとめてみた

目次

背景

仕事でboolean値をランダムに返すやり方がパッと出なかったので、ブログにまとめようと思います。

boolean値をランダムに返す方法

Ruby

Array#sampleメソッドを使用します。sampleメソッドは配列の要素を1個ランダムに選んで返します。

isAdmin = [true, false].sample

p isAdmin # => true

TS

Math.randomとMath.floorを使用します。Math.randomは0 以上 1 未満のランダムな浮動小数点数を返します。また、Math.floorで、小数点以下を切り捨てることができます。

// *2して、0以上2未満のランダムな浮動小数点を生成している
// Math.floorで、浮動小数点数の小数点以下を切り捨てている。
const isAdmin = [true, false][Math.floor(Math.random() * 2)]

console.log(isAdmin); // => true

しかし、これは冗長なので、以下のように書いてもOKです。以下のように書くことで、Math.random()の値が0以上0.5未満ではfalse、Math.random()の値が0.5以上1未満ではtrueになります。

const isAdmin = Math.random() >= 0.5

console.log(isAdmin); // => true

参考記事

javascript — JSはランダムなブール値を生成します

JavaScript | 乱数を生成する(Math.random)

Array#sample (Ruby 3.1 リファレンスマニュアル)