Trustless, Two-Party Random Number Generation
Why should user 1 disclose the resulting random number in addition to disclosing his own seed,

when user 2 can compute the resulting random number from the two seeds?

That might be safe enough, but it's far from secure.

For one thing, each user obtains user obtains proof that the "random number" is only pseudorandom.

For another thing, one would need to hope that the RNG still works well when one half of its

seed is chosen  in a way that adversarially depends on the hash of the other half of its seed.

A simple, somewhat good way is the following:
User 1 gives user 2 a commitment to a random string whose length is equal to the RNG's seed length.

User 2 gives user 1 a random string whose length is equal to the RNG's seed length.

User 1 sends User 2 the opening of the commitment, and both users

feed the xor of the two allegedly random strings into the RNG.

A secure way is the following:
User 1 gives user 2 a commitment to a random string whose length is equal to the output length,

and a zero-knowledge argument of knowledge of how to open the commitment.

User 2 gives user 1 a random string whose length is equal to the output length.

User 1 gives user 2 the value that was committed to (but not the opening information!),

and a zero-knowledge argument of knowledge of how to open the commitment to that value.

Both users output the xor of the two allegedly random strings.