Frage
Dein Code ist Fehlerhaft, da du ein binäres UND anstelles des Modulo Operators verwendest.
Davon abgesehen ist dein Code C und nicht C++ und du benutzt die alte rand() Funktion mit extrem schlechter zufälliger Verteilung.
In C++ würde ich es so machen:
#include <iostream> // cout, endl
#include <random> // default_random_engine, random_device, uniform_int_distribution
#include <type_traits> // extent_v
#include <cstdlib> // size_t
int main() {
using namespace ::std;
const int values[] { 5, 10, 20, 50, 100, 200 };
constexpr size_t count { extent_v<decltype(values)> };
default_random_engine prng { random_device{}() };
uniform_int_distribution<size_t> choice { 0, count - 1 };
for (size_t i {}; i < 10; ++i) {
const auto value { values[choice(prng)] };
cout << i << " => " << value << endl;
}
}
Dafür brauchst du aber einen modernen Compiler, der C++17 unterstützt.
Das Programm gibt dir einfach 10 zufällig gewälte Einträge aus deinem Array aus.
Viel Spaß! :)