El problema que tengo es que si pongo un numero, por ejemplo 7, no escribe 7 caracteres en pantalla, a veces si los escribe y a veces escribe menos.
Código:
  
He estado checando el código, pero aun no encuentro solución, espero su ayuda y gracias. 
var abecedario = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',];
var raros = ['!','#','$','%','&','/','(',')','.',':','-','_']; //12 caracteres
var numero = prompt('Ingresa numero de caracteres de la pass');
for (i=0;i<numero;i++){
	var random = Math.floor(Math.random() * abecedario.length);
	var tipo_caracter = Math.floor(Math.random() * 4); //Si numero = 1 Mayuscula, 2 Minuscula, 3 numero
	switch(tipo_caracter){
		case 1:
			document.write(abecedario[random].toUpperCase());
		break;
		case 2:
			document.write(abecedario[random]);
		break;
		case 3:
			document.write(Math.floor(Math.random() * 10));
		break;
	}
}
 
 

 Problema basico con bucle
 Problema basico con bucle 

