//#include <ansi_c.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int randomGenerator(int min, int max);
int NotUsedRecently (int number);

int main(void)
{
	int i=0;
	for(i=0;i<1000;i++)
	{
		printf("%d, ", randomGenerator(0, 32767));
		if(i%20 == 0) printf("\n");
	}
	getchar();
	return 0;   
}

//will generate pseudo random numbers between min and max
int randomGenerator(int min, int max)
{
	int random, trying;

	trying = 1;         
	while(trying)
	{
		srand(clock());
		random = (rand()/32767.0)*(max+1);
		((random >= min) && NotUsedRecently(random)) ? (trying = 0) : (trying = 1);
	}

	return random;
}

//written for depth of 64most recent numbers.      
int NotUsedRecently (int number)
{
	static int recent[64];//change this array size as needed
	int i,j;
	int notUsed = 1;

	for(i=0;i<(sizeof(recent)/sizeof(recent[0]));i++)
		(number != recent[i]) ? (notUsed==notUsed) : (notUsed=0, i=(sizeof(recent)/sizeof(recent[0])));
	if(notUsed) 
	{
		for(j=(sizeof(recent)/sizeof(recent[0]));j>1;j--)
		{
			recent[j-1] = recent[j-2];
		}
		recent[j-1] = number;
	}
	return notUsed;
}
