Some sketches of a response:
You also need to trust that the oracle actually generates random values. Note that you can distribute the trust by using the several oracles and combining the result.
I don't know of any such libraries.
Hard to say without knowing the exact details of 2, but there are no conceptual difficulties. Michelson supports several hash ...