If I may, I'd recommend to use a seeded RNG so that your pin colors remain stable on every rotation change:
```
randomItem = {
controls; // invalidate this cell on every rerender
const rng = d3.randomLcg(1);
return array => array[Math.floor(rng() * array.length)];
}
```
Alternatively you could cycle through the colors in your caps cell, e.g.
````
.map((d, i) => ({/* ... */ color: pinColors[i % pinColors.length] })
```