It looks like this line is only going to generate numbers in the ranges [9x - 1.5, 9x - 0.5].  Is there a reason for the big gaps, or did you mean to do something like [3x , 3x+3]?
```javascript
return new Vector(3.0 * (itemCount + Math.random()), 3.0 * (itemCount + Math.random()));