You could just do something like:
import numpy as np
N = 100
b = np.random.random_integers(-2000,2000,size=(N,N))
b_symm = (b + b.T)/2
Where you can choose from whatever distribution you want in the np.random
or equivalent scipy module.
Update: If you are trying to build graph-like structures, definitely check out the networkx package:
http://networkx.lanl.gov
which has a number of built-in routines to build graphs:
http://networkx.lanl.gov/reference/generators.html
Also if you want to add some number of randomly placed zeros, you can always generate a random set of indices and replace the values with zero.