> 1. How do you code such that the posttrial pause averages to 500 ms but ranges from 250 - 750 ms?
/posttrial attributes and the like accept expressions. You need to program an expressions that draws from a distribution that has the properties you want (cf. https://www.millisecond.com/forums/Topic8431.aspx for an elaborate example).
> 2. Is it possible to display a stimuli for 50 ms?
Yes, but if 50ms can be achieved will primarily depend on your display's refresh rate. A display running at 100Hz has a 10ms refresh cycle, i.e. 50 frames will give you approx. 50ms. A display running at 50Hz has a 20ms refresh cycle. Obviously, there is no way to achieve 50ms with that (2 frames = 40ms; 3 frames = 60ms).
> 3. How do you program so that both the position of the stimuli (right/left or top/bottom) and the probes (A or H) are randomized?
There are dozens of ways to approach this and as with /posttrialpause, /position attributes accept expressions. As your question stands, it is ill-defined: "randomizing" can mean any number of things (think coin flips vs. drawing from a deck of n cards) and it is not possible to give a sensible answer without knowing your intentions and exact parameters.
Since you are new to Inquisit, I would also strongly recommend you (a) start by working through the tutorials included in the documentation (if you haven't done so already) and (b) study a selection of scripts available from the task library (which included dot-probe-type tasks).