# Sorting an Array in Random Order

• A+
Category：Languages

I'm trying to understand how sorting an array in random order so i found this code:

``var as = ["max","jack","sam"];   var s = as.sort(func);    function func(a, b) {     return 0.5 - Math.random(); }    console.log(s);``

my main question is why they use 0.5 not another number? and how it really works please try to make it simple i'm new in javascript and i'm struggling with these things

You used

``var as = ["max","jack","sam"];   var s = as.sort(func);    function func(a, b) {     return 0.5 - Math.random(); }    console.log(s); ``

And here the most important thing is `as.sort(func)`. `func(a,b)` will return value in range of `[-0.5,0.5]`.

Because this function return `0.5 - Math.random()` and Math.random() will return the float value which is in range of `[0,1]`. So that your `func` will return value in range of `[-0.5,0.5]`.

And this mean that sort order will be set `increase` or `decrease`. this is random. So your result will be random

``var as = ["max","jack","sam"];   var s = as.sort(func);    function func(a, b) {     return Math.random(); }    console.log(s);``

``var as = ["max","jack","sam"];   var s = as.sort(func);    function func(a, b) {     return 0 - Math.random(); }    console.log(s);``

``var as = ["max","jack","sam"];   var s = as.sort(func);    function func(a, b) {     return 0.5 - Math.random(); }    console.log(s);``