With, at, or having would be correct here. But, their meaning is subtly different in each.
With or having means the shares are valued at x.
At means the shares were valued at x when he bought them.
For means the price he paid for them which as WS2 points out in comments might be different from the nominal price.
Note that all of these differences are really subtle, and no one would really be confused if you used them interchangeably.
Of doesn't really work here. It makes it sound like: He is buying 50 shares of a stock called the nominal value of . . .