Ok cool.
How do we get around this with your solution?
Dave is using Russell's service, so Russell generates the random number when his service creates the invoice that's returned to Alice.
In order for Dave to clear the HTLC, he needs to get the random number produced by Russell's service. How does Dave get that random number that your service generated?