Object.prototype.value can't be assigned

breaks defineProperty
renamed Obj.value to Obj.val
Added shuffle function
Mild re-factor