Code:
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

long Random32BitNumber(unsigned long int);

int main (void)
{
	unsigned long int nMax;
	unsigned long int ulArraySize;
	
	cout <<"Enter array size: ";
	cin >> ulArraySize;
	unsigned long int *ulArray = new unsigned long int (ulArraySize);

	cout <<"Enter the maximum value: ";
	cin >> nMax;
	
	for (unsigned long int x=0; x<ulArraySize; x++)
	{
		ulArray[x] = Random32BitNumber(*ulArray);
		cout << endl;
		cout << ulArray[x];
	}
	
	delete []ulArray;
	cin.ignore();
	return 0;
}

long Random32BitNumber(unsigned long int lRange)
{
	return (((rand() << 30) & 0x7fffffff) + (rand() << 15) + rand()) % lRange;
}

The prog crashes after displaying numbers:
i am guessing that i am using the array wrong