lib/recurse.js
function recurse( dims, d, draw ) {
	var out = [];
	var len;
	var i;

	len = dims[ d ];
	d += 1;
	if ( d < dims.length ) {
		for ( i = 0; i < len; i++ ) {
			out.push( recurse( dims, d, draw ) );
		}
	} else {
		for ( i = 0; i < len; i++ ) {
			out.push( draw() );
		}
	}
	return out;
}
function recurse( dims, d, draw ) {
	var out = [];
	var len;
	var i;

	len = dims[ d ];
	d += 1;
	if ( d < dims.length ) {
		for ( i = 0; i < len; i++ ) {
			out.push( recurse( dims, d, draw ) );
		}
	} else {
		for ( i = 0; i < len; i++ ) {
			out.push( draw() );
		}
	}
	return out;
}
FUNCTION: recurse( dims, d, draw )
Recursively create a multidimensional array of normally distributed random numbers.

@param {Number[]} dims - dimensions
@param {Number} d - current recursion depth
@param {Function} draw - function to generate normal random numbers with given `mu` and `sigma`
@returns {Array} output array