Класс Random использует начальное значение для генерации своей последовательности чисел.Вызывая его без параметра, он использует системные часы для начального числа и, скорее всего, вызывается слишком быстро между двумя элементами управления canvas, поэтому в итоге используется одинаковое начальное значение для обоих.Из документов в Microsoft :
Однако, поскольку часы имеют конечное разрешение, использование конструктора без параметров для создания различных случайных объектов в тесной последовательности создает генераторы случайных чисел, которые производят идентичные последовательностислучайных чисел.
Вы можете добавить параметр к вызову конструктора, но я не думаю, что это действительно решит вашу проблему.Лучше всего переместить экземпляр Random и сделать его единственным членом класса.т.е.
private Random RandomColor = new Random();
private Color RandomNewColor()
{
Byte[] _byte = new Byte[3];
RandomColor.NextBytes(_byte);