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