codice:
var tutti = new Array();
var sublist = new Array();
var a_length = 20;
var n_array = 10;
var n_length = 10;
// Generazione primo array "tutti"
while (a_length) {
	tutti.unshift(a_length--);
}
function generateNew(origin, len) {
	var gen = new Array();
	for (var i = 0; i<len; i++) {
		var pos = Math.round(Math.random()*origin.length)-1;
		gen.push(origin.splice(pos, 1));
	}
	return gen;
}
while (n_array) {
	var temp = generateNew(tutti.slice(), n_length);
	sublist.push(temp);
	n_array--;
}
questo ti garantisce 10 array all'interno dei quali ci sono valori univoci
se vuoi ordinarli puoi usare la funzione sort degli array
per controllare che un array nn sia identico ad un altro nn saprei come fare se non scorrere uno per uno tutti gli array e confrontarli tra loro, ma mi sembra uno spreco ... il random dovrebbe essere sufficiente