A combination of [`IntegerPartitions`](https://reference.wolfram.com/language/ref/IntegerPartitions.html), [`RandomChoice`](https://reference.wolfram.com/language/ref/RandomChoice.html)and [`RandomSample`](https://reference.wolfram.com/language/ref/RandomSample.html):

    n = 30;
    RandomSample[#, n] & @ RandomChoice @ IntegerPartitions[0, {n}, {-1, 0, 1}]
>{-1, 1, 1, 1, 1, -1, -1, 0, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 0, 
1, -1, -1, 1, -1, -1, 1, 1, -1, 1}

    Total @ %
> 0