names=rand
visibility=public
kind=defined

--- rand(max = 0) -> Integer | Float
--- rand(range) -> Integer | Float | nil

擬似乱数を発生させます。

最初の形式では
max が 0 の場合は 0.0 以上 1.0 未満の実数を、正の整数の場合は 0 以上 max 未満の整数を返します。
それ以外の値を指定した場合は max.to_int の絶対値が指定されたものとして扱います。

二番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
range に含まれる数が無い場合は nil を返します。

まだ [[m:Kernel.#srand]] が呼ばれていなければ自動的に呼び出します。

擬似乱数生成器として [[m:Random::DEFAULT]] を使用します。
これは [[m:Random.rand]] と共通です。

@param max   乱数値の上限を正の整数で指定します。
             max 自体は乱数値の範囲に含まれません。
             0 を指定すると実数値の乱数を返します。
@param range 発生させる乱数値の範囲を [[c:Range]] オブジェクトで指定します。
             range の境界は数値でなければなりません。

  srand(1234)     # 乱数の種を設定する。
  rand            #=> 0.1915194503788923
  rand            #=> 0.6221087710398319
  rand(10)        #=> 4
  rand(5.5)       #=> 0
                  # rand(5) と同じ。 5 が乱数値の範囲に含まれないことに注意。
  
  rand(1..6)      #=> 2                   (1 から 6 までの整数)
  rand(0...10)    #=> 1                   (0 から 9 までの整数。終端を含まない)
  rand(1.0..1.5)  #=> 1.1362963047752432  (1.0 以上 1.5 以下の実数)
  rand(1.0...1.5) #=> 1.1382321275715483  (1.0 以上 1.5 未満の実数)
  rand(1..0)      #=> nil

@see [[m:Kernel.#srand]], [[m:Random#rand]], [[c:Random]]

