---
slug: /ru/sql-reference/functions/random-functions
sidebar_position: 51
sidebar_label: "Функции генерации псевдослучайных чисел"
---

# Функции генерации псевдослучайных чисел {#functions-for-generating-pseudo-random-numbers}

Используются не криптографические генераторы псевдослучайных чисел.

Все функции принимают ноль аргументов или один аргумент.
В случае, если передан аргумент - он может быть любого типа, и его значение никак не используется.
Этот аргумент нужен только для того, чтобы предотвратить склейку одинаковых выражений - чтобы две разные записи одной функции возвращали разные столбцы, с разными случайными числами.

## rand {#rand}

Возвращает псевдослучайное число типа UInt32, равномерно распределённое среди всех чисел типа UInt32.
Используется linear congruential generator.

## rand64 {#rand64}

Возвращает псевдослучайное число типа UInt64, равномерно распределённое среди всех чисел типа UInt64.
Используется linear congruential generator.

## randConstant {#randconstant}

Создает константный столбец с псевдослучайным значением.

**Синтаксис**

``` sql
randConstant([x])
```

**Аргументы**

-   `x` — [выражение](../syntax.md#syntax-expressions), возвращающее значение одного из [поддерживаемых типов данных](../data-types/index.md#data_types). Значение используется, чтобы избежать [склейки одинаковых выражений](index.md#common-subexpression-elimination), если функция вызывается несколько раз в одном запросе. Необязательный параметр.

**Возвращаемое значение**

-   Псевдослучайное число.

Тип: [UInt32](../data-types/int-uint.md).

**Пример**

Запрос:

``` sql
SELECT rand(), rand(1), rand(number), randConstant(), randConstant(1), randConstant(number)
FROM numbers(3)
```

Результат:

``` text
┌─────rand()─┬────rand(1)─┬─rand(number)─┬─randConstant()─┬─randConstant(1)─┬─randConstant(number)─┐
│ 3047369878 │ 4132449925 │   4044508545 │     2740811946 │      4229401477 │           1924032898 │
│ 2938880146 │ 1267722397 │   4154983056 │     2740811946 │      4229401477 │           1924032898 │
│  956619638 │ 4238287282 │   1104342490 │     2740811946 │      4229401477 │           1924032898 │
└────────────┴────────────┴──────────────┴────────────────┴─────────────────┴──────────────────────┘
```

# Случайные функции для работы со строками {#random-functions-for-working-with-strings}

## randomString {#random-string}

## randomFixedString {#random-fixed-string}

## randomPrintableASCII {#random-printable-ascii}

## randomStringUTF8 {#random-string-utf8}

## fuzzBits {#fuzzbits}

**Синтаксис**

``` sql
fuzzBits([s], [prob])
```
Инвертирует каждый бит `s` с вероятностью `prob`.

**Аргументы**

- `s` — `String` or `FixedString`
- `prob` — constant `Float32/64`

**Возвращаемое значение**

Измененная случайным образом строка с тем же типом, что и `s`.

**Пример**

Запрос:

``` sql
SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)
```

Результат:

``` text
┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja                               │
│ a*cjab+                               │
│ aeca2A                                │
└───────────────────────────────────────┘
```
