ガジェット作成で気付いたこと

ガジェット作成でJavaScript使っている際に気付いたこと何点か。

Arrayのsortメソッド

Arrayの中に数値データをpushしていって、最後にソートしたら、
数字でソートではなく、文字列でソートされてしまった。。。
たとえば
104,23,3,56
みたいな並びになる。
そういう仕様なの??

例えば以下みたいな工夫がいるらしいけど、さっきのガジェットではいまいちうごいてなかったり。。

function sortNumber(a,b)
{
return a - b;
}
arr.sort(sortNumber)

Math.random()は0〜1の間のランダム

引数で範囲を示すのではなく、掛け算で示すのか。
ちょっと不思議だ。
1〜5までの乱数

 1 + parseInt(Math.random() * 5)

ちなみに、ほんとにこれであってるのか若干不安。。