Ваш первоначальный подход правильный - вычисление выпуклой оболочки - единственный способ удовлетворить случайность, выпуклость и целочисленность.
Единственный способ, которым я могу придумать, как оптимизировать ваш алгоритм, чтобы получить «больше очков», это организовать их по кругу, а не совершенно случайно. Ваши очки должны быть ближе к «краям» вашего квадрата, чем к центру. В центре вероятность должна быть ~ 0, так как многоугольник должен быть выпуклым.
Один простой вариант - установить минимальный радиус для отображения ваших точек - возможно, C / 2 или C * 0,75. Вычислите центр квадрата C, и если точка находится слишком близко, отодвиньте ее от центра, пока не будет достигнуто минимальное расстояние.