public void InitializeRandomProblem(int count) {
		int x = 0;
		int y = 0;
		int val = 0;
		
		
		
		for (int i=0; i<sudokuSize; i++) {						//Reset the whole Grid!
			for (int j=0; j<sudokuSize; j++) {
				SetValueAndState(i, j, -1, waitingValue);
			}
		}
		
		Random random = new Random(System.nanoTime());
		
		while (count > 0) 
		{
			x = random.nextInt(sudokuSize);
			y = random.nextInt(sudokuSize);

			if (cells[x][y].valueState == waitingValue) 
			{
				val = random.nextInt(sudokuSize) + 1;			//Random Values at random positions!
				
				if (checkPosition(x, y, val)) 
				{
					count--;
					SetValueAndState(x, y, val, intializedByServer);
					cells[x][y].IsConstant();
				}
			}
		}
	}