Non-uniform random distribution: How do I get a random between 100 and 180 that is on average close to 120? (like in a Gaussian distribution)
Your problem is rather vague: "bell curve" and "centered around i" are not well defined.

One possible recipe is to generate a truncated gaussian: define s= min(b-i,i-a)/c where c is a free parameter (suggested values:  [1,3] range), generate a gaussian with mean i and standard deviation s  - and round it to the nearest integer. If the value falls outside the [a,b] range, try again.

Related.