The reason I thought about this approach is that if we do the logics at the clients and not centralized, it could easily happen that things run out of sync.
For example if some random values are used for the logic, then it must be ensured that for all clients the same random value is used.
If there is only a slight non-deterministic behaviour then synchronisation is needed, so I got the idea described above.
Luckily pseudo random number generators are deterministic!
Generally it is indeed done like this. The logic is run seperately by every client.
Each client sents the user input (or the resulting changes) to the server, which tells every other client about it.
Often times the server also corrects certain values if they're wrong.
E.g. in an ego shooter a lagging player might not be able to transmit his movement constantly. Thus he becomes out of synch with the other players.
He transmits his information to the server, the server notices the difference between where he thinks the player should be and the data he just got.
So the server tells the player to correct his position accordingly (the server is generally authoritative, so his data is regarded as the real data).