Generating random numbers and decks of cards
First off, your code is borderline unreadable. Use proper indentation. Add whitespace (horizontal and vertical). Follow conventional guidelines (lowercase camelCase names for most things). And give your variables actual names - bytes are cheap.

If you want really compact code, use a minifier - after writing the code in readable, sane manner. This looks like a text dump of a fiendish Excel spreadsheet or something.

For the few things that I could read, and which stand out:


You Rand [sic] function is doing a bunch of unnecessary stuff. You parseFloat something that's guaranteed to be an integer, because you called Math.floor() on it. You parseFloat on min when adding it at the end, but you don't do it when you subtract it from max.

And it's broken (which makes it technically off-topic for CodeReview, by the way).

Firstly, it doesn't even run because you've got one close-parenthesis too many, so there's a syntax error.   

Secondly, you're not paying attention to operator precedence: Multiplication precedes addition and subtract. So your code is saying Math.random() * max then subtracting min and finally adding 1. Hence, if you call Rand(9, 10), you're liable to get any number from 1-10, rather than a number from 9-10.

Just say:

function rand(min, max) {
  var span = max - min;
  return Math.round(Math.random() * span) + min;
}

As for Choose [sic], you can use the bitwise-floor trick:

function choose(arr) {
  return arr[Math.random() * arr.length | 0];
}

When appending to and array, use push. Don't just assign to an index. E.g.

spades.push(values[i] + " of Spades");
hearts.push(values[i] + " of Hearts");
clubs.push(values[i] + " of Clubs");
diamonds.push(values[i] + " of Diamonds");



As for "better RNG", that's a StackOverflow question if anything. JavaScript has Math.random() and that's it.