rand()

rand()関数は、0以上、指定した上限値未満のランダムな整数を返します。

構文

rand(BOUND[, SEED])

パラメーター

BOUND
戻り値の上限を指定する正の整数です。0より大きい値を指定する必要があります。rand()関数は0以上BOUND未満の整数を返します。
SEED
乱数生成器のシード値です。指定すると、同じシードから常に同じ順序の値を生成します。クエリの動作を検証したい場合や再現可能な結果が必要な場合に使用します。

説明

rand()関数は、JavaのRandomクラスを使用して0以上BOUND未満のランダムな整数を返します。

BOUNDは必ず正の整数である必要があります。浮動小数点数や負の数を指定するとクエリのパース時にエラーが発生します。SEEDは整数である必要があり、浮動小数点数を指定するとパース時にエラーが発生します。

BOUNDを動的な式で指定した場合、実行中にその値が整数でないか負の数であるとnullを返します。

Caution
`SEED`を指定すると常に同じ順序の値を返します。セキュリティ目的の乱数生成には使用しないでください。

エラーコード

エラーコード説明
90750無効なBOUND値を指定した場合
90751BOUNDに0以下の値を指定した場合
90752SEEDに浮動小数点数を指定した場合

使用例

  1. 0〜999の範囲のランダムな整数を生成

    json "{}" | eval r = rand(1000)
    | # r: (0以上1000未満のランダムな整数)
    
  2. シードを指定して再現可能な値を生成

    json "{}" | eval r = rand(1000, 42)
    | # r: (0以上1000未満のランダムな整数)
    
  3. BOUNDを動的な式で指定した場合

    json "{'n': 100}" | eval r = rand(n)
    | # r: (0以上100未満のランダムな整数)
    

互換性

rand()関数は、Sonar 4.0以前のバージョンから提供されています。