Пример страницы

<form class="form-inline" style="width: 380px;margin: 10px auto;">
	<div class="form-group mx-sm-3">
		<input type="text" class="form-control" id="input-password">
	</div>
	<button type="button" id="input-generate" class="btn btn-primary">Сгенерировать</button>
</form>
 
<script src="/jquery.min.js"></script>
<script>
$("#input-generate").click(function(){
	 var $input = $("#input-password");
	 $input.val('');
	 
	 var pass = generatePassword();
	 var txt = pass.split("");
	 var interval = setInterval(function(){
	 	if(!txt[0]){
			clearInterval(interval);
		} else {
			$input.val($input.val() + txt.shift());
		}
	}, 50);
 
	return false;
});
 
function generatePassword(){
	var length = 8,
	charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@-#$";
	if(window.crypto && window.crypto.getRandomValues) {
		return Array(length)
			.fill(charset)
			.map(x => x[Math.floor(crypto.getRandomValues(new Uint32Array(1))[0] / (0xffffffff + 1) * (x.length + 1))])
			.join('');    
	} else {
		res = '';
		for (var i = 0, n = charset.length; i < length; ++i) {
			res += charset.charAt(Math.floor(Math.random() * n));
		}
		return res;
	}
}
</script>