JavaScript (V8), 178 172 171 bytes
Transpiles to JS. May throw either Z is not defined or x is not defined if the code attempts to do something bad.
s=>eval(s.replace(/./g,c=>`S.push(${c>'}'?'x=Math.random()*1e5|0':c>'9'?'x':c=='.'?');print(x':c<')'?');while(x){(0':c<'*'?')}(0':`1/(x${c}=S.pop(S.pop()))?x:Z`});`,S=[])) ###How?
How?
Each instruction is transpiled to S.push(, followed by a specific pattern, followed by );.
We have to test the division by zero explicitly because JS doesn't give the slightest damn about such a harmless operation. :-p
char. | JS code -------+-------------------------------------- ~ | S.push( x=Math.random()*1e5|0 ); + | S.push( 1/(x+=S.pop(S.pop()))?x:Z ); - | S.push( 1/(x-=S.pop(S.pop()))?x:Z ); * | S.push( 1/(x*=S.pop(S.pop()))?x:Z ); / | S.push( 1/(x/=S.pop(S.pop()))?x:Z ); : | S.push( x ); . | S.push( );print(x ); ( | S.push( );while(x){(0 ); ) | S.push( )}(0 );