do you need to independently create a genesis block for a new altcoin?
In old versions of the Bitcoin Core codebase, the genesis block was verified as a normal block. All normal rules had to apply to it, including proof of work and difficulty. This meant that if you would modify the contents of the genesis block arbitrarily, it almost certainly would not validate anymore.

Since the genesis block is actually part of the definition of the chain, there is no real need to verify it. In more recent versions, the genesis block is just valid by fiat. This means that when using such a codebase, no complicated script that "mines" the genesis block is needed anymore to define a new chain.