Randomization related

The icons array of length 8 would accept indexes range between [0..8). While rand.nextInt(8) is giving the exactly same range [0..8), no further adjustment to the index should be required. The similar logic could be applied to the validEnchants list as well.