бот отправляет одно сообщение несколько раз, причиной тому стал параметр random_id, который должен быть каждый раз уникальным, а у меня был 'random_id' => 0.
Нет, бот отправлял сообщение несколько раз потому что несколько раз вызывался метод `messages.send`
пытаюсь сделать генерацию random_id, но почему-то бот все равно отправляет несколько сообщений.
Потому что проблема не решена несколько раз подряд вызывается `messages.send`
Если у вас бот работает через Callback API то надо проверить что вы всегда отвечаете ОК в ответ, сейчас в вашем когде есть `var_dump($random_id);` который тоже ломает это и Callback API будет присылать запросы повторно.
Посмотреть есть ли повторы в Callback API можно у Управлении сообществом > Работа с API