Is this scheme a provably fair random number generation?
Yes, your scheme is fine.

Nitpick: I think you mean that your goal is to generate a random number in the range $0\ldots n-1$ (not $0\ldots n$).  Also, to avoid bias, you need to generate $m$ as a random number in the range $0 \ldots (\lfloor 2^{256}/n \rfloor \cdot n)-1$ (not $0\ldots \lfloor 2^{256}/n \rfloor \cdot n$).

This problem is known as secure coin flipping, and it has been studied in great depth before.  For solutions and analysis, look at the following questions on this site:


How to fairly select a random number for a game without trusting a third party?
https://crypto.stackexchange.com/a/465/351
Proof that lottery does not know outcome of draw
A fair peer-based coin-flipping protocol?