Angular: Empty Fiddle

http://angularjs.org/

HTML

<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<div ng-controller="MyCtrl">
  {{password}}
</div>

JavaScript

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {

  $scope.passwordLength = 12;
  $scope.addUpper = true;
  $scope.addNumbers = true;
  $scope.addSymbols = true;

  function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }

  function shuffleArray(array) {
    for (var i = array.length - 1; i > 0; i--) {
      var j = Math.floor(Math.random() * (i + 1));
      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }
    return array;
  }

  $scope.createPassword = function() {
    var lowerCharacters = ['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 upperCharacters = ['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 numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
    var symbols = ['!', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~'];

    var noOfLowerCharacters = 0,
      noOfUpperCharacters = 0,
      noOfNumbers = 0,
      noOfSymbols = 0;

    var noOfneededTypes = $scope.addUpper + $scope.addNumbers + $scope.addSymbols;

    var noOfLowerCharacters = getRandomInt(1, $scope.passwordLength - noOfneededTypes);

    var usedTypeCounter = 1;

    if ($scope.addUpper) {
      noOfUpperCharacters = getRandomInt(1, $scope.passwordLength - noOfneededTypes + usedTypeCounter - noOfLowerCharacters);
      usedTypeCounter++;
    }

    if ($scope.addNumbers) {
      noOfNumbers = getRandomInt(1, $scope.passwordLength - noOfneededTypes + usedTypeCounter - noOfLowerCharacters - noOfUpperCharacters);
      usedTypeCounter++;
    }

    if ($scope.addSymbols) {
      noOfSymbols = $scope.passwordLength - noOfLowerCharacters - noOfUpperCharacters - noOfNumbers;
    }

    var passwordArray = [];

   ...