function reviveBasePRNG( key, value ) {
	var factory;
	var opts;
	var args;
	var ctor;
	var tmp;
	if (
		value &&
		value.type === 'PRNG' &&
		isString( value.name ) &&
		isObject( value.state ) &&
		isArray( value.params ) &&
		isString( value.state.type ) &&
		isArray( value.state.data )
	) {
		opts = {};
		factory = table[ value.name ];
		if ( factory === void 0 ) {
			tmp = value.name.split( '-' );
			if ( isPRNGWrapper( tmp[ 0 ] ) ) {
				factory = table[ tmp[ 0 ] ];
				opts.name = tmp.slice( 1 ).join( '-' );
			}
		}
		if ( factory ) {
			ctor = TYPED_ARRAY_CTORS[ value.state.type ];
			if ( ctor ) {
				opts.state = new ctor( value.state.data );

				args = value.params.slice();
				args.push( opts );

				try {
					return factory.apply( null, args );
				} catch ( error ) { // eslint-disable-line no-unused-vars
					// Return the original JSON value...
				}
			}
		}
	}
	return value;
}
Revives a JSON-serialized pseudorandom number generator.

@param {string} key - key
@param {*} value - value
@returns {(*|Function)} value or PRNG

@example
var parseJSON = require( '@stdlib/utils/parse-json' );
var mt19937 = require( '@stdlib/random/base/mt19937' );

var str = JSON.stringify( mt19937 );
var rand = parseJSON( str, reviveBasePRNG );
// returns <Function>