Bueno, lo primero es que uses GeSHi envés de citar el código.
En segundo lugar como es eso de que no pudiste usar rand() y srand()? A ver, para generar numeros pseudoaleatorios que no se repitan entre ejecuciones o llamadas a funiones necesitas plantar una semilla, esto se hace con srand, generalmente se usa el tiempo porque es un dato que varia en todo momento, para plantar la semilla haces lo siguiente:
#include <ctime>
#include <cstdlib>
srand(time(NULL));
Una vez hecho esto puedes obtener números pseudoaleatorios de la siguiente manera:
int random = rand();
Ahora si lo que quieres es obtener un numero entro en un rango puedes hacer lo siguiente:
int random = rand() % 100; //Genera números entre 0 y 99
int random2 = rand() % 100 + 1; //Genra numeros de 0 a 100
int random3 = rand() % 10 + 20; // Genera numeros entre 20 y 30
Ahora si quieres relenar un arreglo con números aleatorios digamos entre 20 y 30:
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int main() {
srand(time(NULL));
int arr[10];
int random = 0;
for (int i = 0; i < 10; i++) {
random = rand() % 10 + 20;
arr[i] = random;
cout << arr[i] << endl;
}
return 0;
}
Saludos