# Системные функции: Генерация случайного числа

Source: https://docs.botman.pro/a/98-sistemnye-funktsii-generatsiya-sluchaynogo-chisla

Используется, когда нужно добавить элемент случайности:

- разнообразить тексты и ответы,
- выбрать победителя в розыгрыше,
- случайно распределить пользователей по группам,
- создавать игровые механики или викторины.

**💡 Пример:**\
Если вы зададите диапазон от 1 до 3, бот может вернуть 1, 2 или 3 — как повезёт!

---

## Где можно использовать

Функция доступна почти во всех местах, где есть текстовое поле:

- в сообщениях,
- в блоках «Вопрос», «Текст», «Товар»,
- в сообщениях администраторам, шаблонах быстрых ответов и т.д.

---

## Как вставить функцию в сценарий

Откройте нужный шаг — например, «Сообщение»:\
\
Нажмите на «&lt;/> Выбор переменных и функций» ⭢ вкладка «Системные функции» ⭢ «Генерация случайного числа».\
\
Вставится метка функции. Затем появится окно с настройками.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/091ffdd0033c46b1caaeffa13d4fbd64a6f980912ee599b0eb3a2c7d072831e3.png)

Как это выглядит в тексте:\
`{{random(min, max, fallback)}}` — не пугайтесь этой записи: вы просто задаёте нижнюю и верхнюю границы числа.

- min — от какого числа считать (например, 1)
- max — до какого числа (например, 3)
- fallback — что вернуть «на всякий случай», если бот не сможет посчитать (можно не заполнять)

Пример: `{{random(1, 3)}}` вернёт 1, 2 или 3 — как повезёт

---

## Как работает настройка

После выбора функции откроется окно, где нужно указать диапазон чисел.

- Минимальное число — с какого значения начинать (например, 1).
- Максимальное число — до какого значения (например, 10).
- Резервное значение (необязательно) — подстраховка на случай ошибки. Если бот не сможет посчитать (например, введены неверные данные), он вернёт это число.

Сервис проверит, чтобы всё было логично:\
если «минимальное» число больше «максимального», сохранить не даст.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/c960af94b6e6b0ec06cc1c9954b6cd86efd1a54b4d54170c2e67eaa6c16731f7.png)

**Примеры из практики**

**1. Разные приветствия**\
Хотите, чтобы бот не говорил одно и то же каждый раз?\
Используйте случайное число для выбора варианта.\
Пример: `{{random(1,3)}}`\
1 → Привет! 👋\
2 → Здравствуй!\
3 → Рад тебя видеть!\
Каждый раз пользователь увидит разное приветствие.

**2. Мини-розыгрыш**\
`{{random(1,100)}}`\
Если выпало 77 — поздравление и бонус!\
Все остальные получают фразу: «Не повезло, попробуй снова 😉».

**3. Персональная скидка**\
`{{random(5,15)}}`\
Бот сам подставляет случайное число:\
«Ваша скидка сегодня — {{…}}%!»

**4. Игра или викторина**\
`{{random(1,4)}}`\
Бот случайно выбирает, какой вариант ответа показать первым.\
Так пользователи не смогут запомнить «правильную» кнопку.

**5. Деление пользователей по группам**\
`{{random(1,2)}}`\
Если выпало 1 → пользователь идёт по ветке «Группа А»\
Если 2 → по ветке «Группа B».\
Отличный способ тестировать разные сценарии.

**6. Подстраховка на случай ошибки**\
`{{random(10,5,999)}}`\
Если бот видит, что нижняя граница больше верхней, он не сможет сгенерировать число — зато подставит 999 (резервное значение).

Что делает бот “за кулисами”

- Бот всегда возвращает целое число — без запятых.
- Если всё указано правильно, выбирается случайное значение от «минимум» до «максимум» включительно.
- Если указаны переменные, бот подставит их значения при запуске сценария.
- Если не может вычислить результат (например, переменная пуста или границы перепутаны), сработает резервное значение, а если его нет — бот вернёт 0

---

**Перед запуском проверьте**

- Диапазон указан корректно (от меньшего к большему).
- Если нужны подстраховки — добавлено резервное значение.
- Проверили результат на тестовом запуске.
- Не используете дробные числа (бот работает только с целыми).
- Переменные, если они есть, уже содержат нужные значения.

---

**Частые вопросы**

Что будет, если я не задам резервное значение?\
Если функция не сможет выполниться, бот вернёт 0 — это “значение по умолчанию”.

Функция возвращает только целые числа?\
Да. Если нужен выбор с десятичными, используйте округление в других функциях, например «Округление числа».

Почему кнопка «Сохранить» иногда не активна?\
Потому что бот проверяет диапазон. Если указано, что “от 10 до 1” — функция не выполнится. Нужно исправить порядок.

---

**💡 Совет**

Чтобы добавить немного «магии» — используйте случайное число не только в текстах, но и в логике сценариев. Например, можно создать условие:

«Если число ≤ 5 — показать одну ветку, если > 5 — другую».\
Так бот будет действовать чуть по-разному, создавая эффект “живого общения”.

---

Функция «Генерация случайного числа» помогает сделать ваш бот непредсказуемым и интересным.\
Добавляйте её в сценарии, где хочется разнообразия, розыгрышей или просто “эффекта случайности”.

