Python 2, 75 69 bytes
from random import*;s=0;j=randrange
while j(12):s=s*9+j(-8,9)
print s
It is trivial to check that the while loop in the middle can generate all integers (albeit biased towards zero). "12" is chosen such that there are roughly half of numbers exceeding ±106.
Older solution:
Python 2, 44 bytes
Based on the Mathematica solutionMathematica solution.
from random import*;print int(gauss(0,8**7))
Doesn't really work because Python's float
has only finite precision.