Don't bet on it, people are terrible at picking truly random numbers.
Regardless, the best way to determine seed numbers
Your software may do this randomly, but what about people running custom software? And what about mining pools? Also, how it is checked that some other miner did it randomly? What if someone will start always picking the first block?
It makes no sense to do this, it won't pay off, the difficulty is the same on both hashes. Choosing one of the two hashes at random is to protect the network from potential attackers. A sane miner does this. The attacker is content with guessing to find two hashes, but this is very difficult, even after the scratch gets overwhelmed, the pattern of dispersion changes because new miners can be added.
Why? Also, as you look at Bitcoin fees, there is no such correlation. It is quite reversed in fact, the earliest non-zero fees were 0.01 BTC and the minimal accepted fee (in BTC) is getting lower and lower since that. Even if you assume paying one satoshi per difficulty and linear growth at one satoshi per difficulty, it would be around 10% coin supply transfer fee, assuming current difficulty around 21 T. Of course you can change allowed fees in more predictable manner, but still, is there any reason to enforce any fee at consensus level? In Bitcoin, any fee is accepted if some transaction is correct and is part of the chain, there are some restrictions about standardness only at mempool level (but any miner can change that).
Miners get the same fee for each transaction at the protocol level, so there is no need to choose a transaction, if they had chosen each miner could make a block of their own, which would result in the creation of child blockchains, as in bitcoin, at the same time think that the attacker is dealing with a single block. While using its power to try all nonce's starting from 0, honest miners both work on different blocks and they all start from 0 and try again nonce's that each other has tried but could not find before. So they don't use a clever distribution of power. This makes it easy for the attacker to reach its goal.
How you can be sure that some single transaction has some timestamp if it is not in some mined block?
People write the signature algorithm in time while making a transaction, and if the network is tried to be fooled here, the transaction is rejected, how? If the signed time is a certain amount away from the time it came to the miner then a minus time has been written. In this case, the transaction is denied. People who want to make a transaction must enter the time properly, and at the same time, the signed transaction must be sent to the miners without losing its validity.
Two hashes can be equal only if they are based on exactly the same data. So, here it is needed to have exactly the same transactions in exactly the same order. And exactly the same coinbase transaction, so why the second miner is enforced to give up and give block reward to some other miner?
A block needs two hashes to generate, and a block cannot be created with a single hash, so two hashes have a reward, and both hashes have the same difficulty.
If you say: if the merkle root of the hashes the miners found is different, the second miner's will be invalid
No, if the merkle root is different, it means that the consensus is broken and the chain has been attacked. In this case, the honest miners quickly get an order among themselves, according to protocol rules, the attacker's chain with incomplete transactions is not passed.