# About this series

This is series of daily JavaScript coding challenges... for both beginners and advanced users.

Each day I’m gone present you a very simple coding challenge, together with the solution. The solution is intentionally written in a didactic way using classic JavaScript syntax in order to be accessible to coders of all levels.

Solutions are designed with increase level of complexity.

## Today’s coding challenge

```
Create a function that will receive n as argument and return an array of n random numbers from 1 to n.
```

(scroll down for solution)

## Code newbies

If you are a code newbie, try to work on the solution on your own. After you finish it, or if you need help, please consult the provided solution.

## Advanced developers

Please provide alternative solutions in the comments below.

You can solve it using functional concepts or solve it using a different algorithm... or just solve it using the latest ES innovations.

By providing a new solution you can show code newbies different ways to solve the same problem.

## Solution

```
// Solution for challenge50
println(getRandomNumbers(10));
function getRandomNumbers(n)
{
var ar = [];
for(var i = 1; i <= n; i++)
{
ar.push(i);
}
shuffleArray(ar);
return ar;
}
// Shuffle array implemented using Fisher–Yates shuffle algorithm
function shuffleArray(ar)
{
for(var i = ar.length - 1; i > 0; i--)
{
var j = randomInt(0, i - 1);
var t = ar[i];
ar[i] = ar[j];
ar[j] = t;
}
return ar;
}
// Get a random int between min and max (both included)
function randomInt(min, max)
{
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
```

To quickly verify this solution, copy the code above in this coding editor and press "Run".

Note: The solution was originally designed for codeguppy.com environment, and therefore is making use of

`println`

. This is the almost equivalent of`console.log`

in other environments. Please feel free to use your preferred coding playground / environment when implementing your solution.

## Discussion (0)