メインコンテンツへスキップ
このセクションのすべての関数は、引数を 0 個または 1 個受け取ります。引数が指定された場合、その唯一の用途は 共通部分式除去 を防ぐことです。これにより、同じ乱数 関数を同一の行内で 2 回実行しても、それぞれ異なる乱数値が返されます。 関連コンテンツ
乱数は、暗号論的ではないアルゴリズムで生成されます。
以下のドキュメントは、system.functions システムテーブルから生成されています。

fuzzBits

導入バージョン: v20.5.0 入力文字列 s の各ビットを、ビットごとに確率 p で反転します。 構文
fuzzBits(s, p)
引数
  • sString または FixedString に対してビットのファジングを実行する String または FixedString
  • p — 各ビットを反転する確率を表す、0.0 から 1.0 までの数値 Float*
戻り値 String または FixedString 型の、s と同じ型のファジング済み文字列を返します。String または FixedString 使用例
Query
SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)
Response
┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja                               │
│ a*cjab+                               │
│ aeca2A                                │
└───────────────────────────────────────┘

rand

導入バージョン: v1.1.0 一様分布に従うランダムな UInt32 値を返します。 システムから取得した初期状態を用いる線形合同法の擬似乱数生成器を使用しているため、見た目はランダムでも、真の乱数ではなく、初期状態がわかっている場合は予測される可能性があります。 真の乱数性が重要な用途では、システムレベルの呼び出しや外部ライブラリとの連携など、別の方法の使用を検討してください。 構文
rand([x])
別名: rand32 引数
  • x — 省略可能で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用したときに、共通部分式除去 を防ぐことです。Any
戻り値 UInt32 のランダムな数値を返します。UInt32 使用例
Query
SELECT rand();
Response
1569354847

rand64

導入バージョン: v1.1.0 一様分布に従うランダムな UInt64 値を返します。 システムから取得した初期状態を用いる線形合同法の乱数生成器を使用します。つまり、見かけ上はランダムでも、真の乱数ではなく、初期状態がわかっていれば予測可能です。 真の乱数が重要な場合は、システムレベルの呼び出しや外部ライブラリとの統合など、別の方法の使用を検討してください。 構文
rand64([x])
引数
  • x — 任意で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用したときに、共通部分式除去を防ぐことです。Any
戻り値 一様分布に従うランダムな UInt64 の数値を返します。UInt64 使用例
Query
SELECT rand64();
Response
15030268859237645412

randBernoulli

導入バージョン: v22.10.0 ベルヌーイ分布 に従うランダムな Float64 値を返します。 構文
randBernoulli(probability[, x])
引数
  • probability — 成功確率。0 から 1 の値で指定します。Float64
  • x — オプションで、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しをクエリ内で複数回使用した場合に、共通部分式除去を防ぐことです。Any
戻り値 指定されたベルヌーイ分布に従うランダムな Float64 の値を返します。UInt64 使用例
Query
SELECT randBernoulli(.75) FROM numbers(5)
Response
┌─randBernoulli(0.75)─┐
│                   1 │
│                   1 │
│                   0 │
│                   1 │
│                   1 │
└─────────────────────┘

randBinomial

導入バージョン: v22.10.0 二項分布に従う Float64 型の乱数を返します。 構文
randBinomial(experiments, probability[, x])
引数
  • experiments — 試行回数 UInt64
  • probability — 各試行における成功確率。0 から 1 までの値 Float64
  • x — 任意で、無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用する場合に、共通部分式除去 を防ぐことです。Any
戻り値 指定された二項分布に従うランダムな Float64 の数値を返します。 UInt64 使用例
Query
SELECT randBinomial(100, .75) FROM numbers(5)
Response
┌─randBinomial(100, 0.75)─┐
│                      74 │
│                      78 │
│                      76 │
│                      77 │
│                      80 │
└─────────────────────────┘

randCanonical

導入バージョン: v22.11.0 0 (以上) から 1 (未満) の範囲で一様分布に従うランダムな Float64 値を返します。 構文
randCanonical([x])
引数
  • x — 省略可能で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用した際に、共通部分式除去が行われるのを防ぐことです。Any
戻り値 ランダムな Float64 値を返します。Float64 使用例
Query
SELECT randCanonical();
Response
0.345217890123456

randChiSquared

導入バージョン: v22.10.0 カイ二乗分布に従うランダムな Float64 値を返します。 構文
randChiSquared(degree_of_freedom[, x])
引数
  • degree_of_freedom — 自由度。Float64
  • x — 任意で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しをクエリ内で複数回使用する場合に、共通部分式除去を防ぐことです。Any
戻り値 指定されたカイ二乗分布に従う、ランダムな Float64 値を返します。Float64 使用例
Query
SELECT randChiSquared(10) FROM numbers(5)
Response
┌─randChiSquared(10)─┐
│ 10.015463656521543 │
│  9.621799919882768 │
│   2.71785015634699 │
│ 11.128188665931908 │
│  4.902063104425469 │
└────────────────────┘

randConstant

導入バージョン: v1.1.0 現在のクエリ実行中、すべての行で同一の単一のランダム値を生成します。 この関数には、次の特徴があります。
  • 1 回のクエリ内では、すべての行に対して同じランダム値を返します
  • クエリの実行ごとに異なる値を生成します
データセット内のすべての行に対して、一貫したランダムシードや識別子を適用する場合に役立ちます 構文
randConstant([x])
引数
  • x — 省略可能で、無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。Any
戻り値 各行に同じランダム値を含む、型 UInt32 のカラムを返します。UInt32 基本的な使い方
Query
SELECT randConstant() AS random_value;
Response
| random_value |
|--------------|
| 1234567890   |
パラメータ付きの使用方法
Query
SELECT randConstant(10) AS random_value;
Response
| random_value |
|--------------|
| 9876543210   |

randExponential

導入バージョン: v22.10.0 指数分布に従う、ランダムな Float64 型の値を返します。 構文
randExponential(lambda[, x])
引数
  • lambda — 分布の率パラメータ、またはラムダ値。Float64
  • x — 任意で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用する場合に、共通部分式除去 を防ぐことです。Any
戻り値 指定された指数分布に従うランダムな Float64 値を返します。Float64 使用例
Query
SELECT randExponential(1/10) FROM numbers(5)
Response
┌─randExponential(divide(1, 10))─┐
│              44.71628934340778 │
│              4.211013337903262 │
│             10.809402553207766 │
│              15.63959406553284 │
│             1.8148392319860158 │
└────────────────────────────────┘

randFisherF

導入バージョン: v22.10.0 F分布に従うランダムな Float64 値を返します。 構文
randFisherF(d1, d2[, x])
引数
  • d1X = (S1 / d1) / (S2 / d2) における d1 の自由度。Float64
  • d2X = (S1 / d1) / (S2 / d2) における d2 の自由度。Float64
  • x — 任意で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用する場合に、共通部分式除去 を防ぐことです。Any
戻り値 指定された F 分布に従うランダムな Float64 の値を返します。Float64 使用例
Query
SELECT randFisherF(10, 3) FROM numbers(5)
Response
┌─randFisherF(10, 20)─┐
│  0.7204609609506184 │
│  0.9926258472572916 │
│  1.4010752726735863 │
│ 0.34928401507025556 │
│  1.8216216009473598 │
└─────────────────────┘

randLogNormal

導入バージョン: v22.10.0 対数正規分布 に従う、ランダムな Float64 値を返します。 構文
randLogNormal(mean, stddev[, x])
引数
  • mean — 分布の平均値。Float64
  • stddev — 分布の標準偏差。Float64
  • x — 任意指定で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。Any
戻り値 指定された対数正規分布に従うランダムな Float64 値を返します。Float64 使用例
Query
SELECT randLogNormal(100, 5) FROM numbers(5)
Response
┌─randLogNormal(100, 5)─┐
│  1.295699673937363e48 │
│  9.719869109186684e39 │
│  6.110868203189557e42 │
│  9.912675872925529e39 │
│ 2.3564708490552458e42 │
└───────────────────────┘

randNegativeBinomial

導入バージョン: v22.10.0 負の二項分布に従うランダムな Float64 値を返します。 構文
randNegativeBinomial(experiments, probability[, x])
引数
  • experiments — 実験の回数。UInt64
  • probability各実験における失敗確率。0から1までの値。 [Float64`](/reference/data-types/float)
  • x — 任意で、無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。Any
戻り値 指定された負の二項分布に従うランダムな Float64 の数値を返します UInt64 使用例
Query
SELECT randNegativeBinomial(100, .75) FROM numbers(5)
Response
┌─randNegativeBinomial(100, 0.75)─┐
│                              33 │
│                              32 │
│                              39 │
│                              40 │
│                              50 │
└─────────────────────────────────┘

randNormal

導入バージョン: v22.10.0 正規分布から生成されたランダムな Float64 値を返します。 構文
randNormal(mean, stddev[, x])
引数
  • mean — 分布の平均値。Float64
  • stddev — 分布の標準偏差。Float64
  • x — 省略可能で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを 1 つのクエリ内で複数回使用した場合に、共通部分式除去が行われないようにすることです。Any
戻り値 指定した正規分布に従うランダムな Float64 の値を返します。Float64 使用例
Query
SELECT randNormal(10, 2) FROM numbers(5)
Response
┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│  8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘

randPoisson

導入バージョン: v22.10.0 ポアソン分布に従うランダムな Float64 型の値を返します。 構文
randPoisson(n[, x])
引数
  • n — 平均出現回数。UInt64
  • x — 任意で、無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。Any
戻り値 指定されたポアソン分布に従う、ランダムな Float64 値を返します。UInt64 使用例
Query
SELECT randPoisson(10) FROM numbers(5)
Response
┌─randPoisson(10)─┐
│               8 │
│               8 │
│               7 │
│              10 │
│               6 │
└─────────────────┘

randStudentT

導入バージョン: v22.10.0 スチューデントのt分布に従う、ランダムな Float64 型の数値を返します。 構文
randStudentT(degree_of_freedom[, x])
引数
  • degree_of_freedom — 自由度。Float64
  • x — 省略可能で、無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用した場合に、共通部分式除去が行われるのを防ぐことです。Any
戻り値 指定されたスチューデントの t 分布に従うランダムな Float64 値を返します。Float64 使用例
Query
SELECT randStudentT(10) FROM numbers(5)
Response
┌─────randStudentT(10)─┐
│   1.2217309938538725 │
│   1.7941971681200541 │
│ -0.28192176076784664 │
│   0.2508897721303792 │
│  -2.7858432909761186 │
└──────────────────────┘

randUniform

導入バージョン: v22.10.0 区間 [min,max][\min, \max] に一様に分布するランダムな Float64 値を返します。 構文
randUniform(min, max[, x])
引数
  • min — 範囲の左端 (含む) 。Float64
  • max — 範囲の右端 (含む) 。Float64
  • x — 省略可能で、無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。Any
戻り値 minmax で定まる区間から一様に抽出された乱数を返します。Float64 使用例
Query
SELECT randUniform(5.5, 10) FROM numbers(5)
Response
┌─randUniform(5.5, 10)─┐
│    8.094978491443102 │
│   7.3181248914450885 │
│    7.177741903868262 │
│    6.483347380953762 │
│    6.122286382885112 │
└──────────────────────┘

randomFixedString

導入バージョン: v20.5.0 指定した文字数の固定長のランダム文字列を生成します。 返される文字は必ずしも ASCII 文字とは限らず、表示可能文字でない場合があります。 構文
randomFixedString(length)
引数
  • length — 文字列の長さ (バイト単位) 。UInt*
戻り値 ランダムなバイトで構成される文字列を返します。FixedString 使用例
Query
SELECT randomFixedString(13) AS rnd, toTypeName(rnd)
Response
┌─rnd──────┬─toTypeName(randomFixedString(13))─┐
│ j▒h㋖HɨZ'▒ │ FixedString(13)                 │
└──────────┴───────────────────────────────────┘

randomPrintableASCII

導入バージョン: v20.1.0 指定した文字数のランダムなASCII文字列を生成します。 length < 0 を指定した場合、この関数の動作は未定義です。 構文
randomPrintableASCII(length[, x])
引数
  • length — バイト単位の文字列長。 (U)Int*
  • x — 省略可能で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しが1つのクエリ内で複数回使われる場合に、共通部分式除去を防ぐことです。 Any
戻り値 ASCII の表示可能文字をランダムに組み合わせた文字列を返します。 String 使用例
Query
SELECT number, randomPrintableASCII(30) AS str, length(str) FROM system.numbers LIMIT 3
Response
┌─number─┬─str────────────────────────────┬─length(randomPrintableASCII(30))─┐
│      0 │ SuiCOSTvC0csfABSw=UcSzp2.`rv8x │                               30 │
│      1 │ 1Ag NlJ &RCN:*>HVPG;PE-nO"SUFD │                               30 │
│      2 │ /"+<"with:=LjJ Vm!c&hI*m#XTfzz │                               30 │
└────────┴────────────────────────────────┴──────────────────────────────────┘

randomString

導入バージョン: v20.5.0 指定した文字数のランダムな文字列を生成します。 返される文字は必ずしも ASCII 文字とは限らないため、表示できない場合があります。 構文
randomString(length[, x])
引数
  • length — 文字列の長さ (バイト単位) 。(U)Int*
  • x — 省略可能で、値は無視されます。この引数の唯一の目的は、同じ関数呼び出しを1つのクエリ内で複数回使用した場合に、共通部分式除去が行われるのを防ぐことです。Any
戻り値 ランダムなバイトで埋められた文字列を返します。String 使用例
Query
SELECT randomString(5) AS str FROM numbers(2)
Response
���
�v6B�

randomStringUTF8

導入バージョン: v20.5.0 指定した数のコードポイントを持つ、ランダムなUTF-8文字列を生成します。 未割り当てのプレーン (プレーン4〜13) に属するコードポイントは返されません。 ただし、ClickHouse server とやり取りするクライアント側で、生成された UTF-8 文字列を正しく表示できない場合があります。 構文
randomStringUTF8(length)
引数
  • length — コードポイント単位での文字列の長さ。(U)Int*
戻り値 ランダムな UTF-8 コードポイントで構成される文字列を返します。String 使用例
Query
SELECT randomStringUTF8(13)
Response
┌─randomStringUTF8(13)─┐
│ 𘤗𙉝д兠庇󡅴󱱎󦐪􂕌𔊹𓰛       │
└──────────────────────┘
最終更新日 2026年6月10日