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

Для генерации криптографически надежных чисел лучше использовать пакет crypto/rand, где последовательности не повторяются.

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

Как генерировать случайные числа в Golang?

1. Создайте файл rand.go со следующим содержимым:

2. Запустите код в терминале через go run rand.go;
3. Посмотрите на вывод:

В предыдущем коде показано два варианта генерации случайных чисел. Первый вариант использует пакет math/rand, что криптографически ненадежен. Он позволяет генерировать одинаковую последовательность с использованием Source с тем же номером сида. Данный подход обычно используется в тестах. Причина этого заключается в воспроизводимости последовательности.

Второй вариант является криптографически надежным, он использует пакет crypto/rand. API использует Reader для предоставления экземпляра криптографически сильного генератора псевдо-случайных чисел. Данный пакет сам по себе имеет свой Reader по умолчанию, который основан на системном генераторе случайных чисел.