For simplicity’s sake, you could use the output of a `Math.random()`

call, which returns a random double greater than or equal to 0.0 and less than 1.0. Simply checking whether it returns a value less than or equal to your frequency (0.1) would do the trick

Example:

```
boolean randomGenerate = (Math.random() < 0.1);
```

`randomGenerate`

shall be assigned `true`

only 10% of the time.

As for your second problem, assuming you are using a 2d array as your board, you can randomly generate int array index. As I said earlier, `Math.random()`

returns a double, D such that `0.0 ≤ D < 1.0`

. Multiplying that by 5 would give you a double D such that `0.0 ≤ D < 5.0`

. Casting that double to int would return you an int between 0 and 4. Example:

```
int randomIndex = (int) (Math.random() * 5);
```

`randomIndex`

shall take any value from the set {0,1,2,3,4} with equal probability.

CLICK HERE to find out more related problems solutions.