private RandomGenerator createRandomGenerator(long seed, Class<? extends RandomGenerator> randGenClass, RandomGenerator... params) {
		
		try {
			Constructor<? extends RandomGenerator> constructor ;
			
			if ( params == null || params.length == 0 ) {
				constructor = null ;
			}
			else {
				constructor = randGenClass.getConstructor( RandomGenerator[].class ) ;
			}
			
			RandomGenerator randGen = constructor != null ? constructor.newInstance( (Object)params ) : randGenClass.newInstance() ;
			
			randGen.initialize(seed);
			
			return randGen ;
		}
		catch (Exception e) {
			throw new IllegalStateException(e) ;
		}
		
	}