Вы не можете объявить массив целых чисел, размер которого известен только во время выполнения в стеке.Однако вы можете объявить такой массив в куче:
int *random_array = new int[random_numbers];
Не забудьте добавить delete [] random_array;
в конце main () (и delete random_generator;
тоже), чтобы освободить выделенную вами памятьиспользуя new
.Эта память автоматически освобождается при выходе из вашей программы, но в любом случае рекомендуется освободить ее (если ваша программа когда-либо будет расти, ее легко забыть добавить позже).
Кроме того, ваш код выглядитхорошо.