The code in post #1 AND the code in wokwi (they are different) did nothing more than "place ships, erase them, and repeat indefinitely."
As mentioned in post #9, randomSeed(); should be called one time to give a "random" starting point (one of 1024). I understand your hoping for a more random set of values, but that will never happen with a computer - which are very non-random. Save the clock cycles and call randomSeed() one time only.
Your code in Post #10 does not even start when used with your configuration in Post #1. You need to show updates to the hardware and the software when you make changes. (it sets up the ships when any joystick direction is selected)