Variable Seems to Change on It's Own

PaulS:
Unlike global variables, local variables are not initialized, unless YOU cause that to happen.

It's better to get in the habit of initializing every variable - local or global.

It's also better to minimize the use of global variables. pixels and currentLed should be passed to colorWipe().

I wasn't sure how else to declare and initialize the arrays, should I just declare the arrays inside setup() where I initialize them? Or is there a way to set every entry in an array to the same variable? I looked around a little bit for how to do that but the for loop seemed the best way.

I'm not sure I fully understand local vs global, would I declare these variables in setup() to make them local? I know variables declared inside a function will be local, but those two will be needed by most of my patterns.

PaulS:
One final note. a, r, g, and b never hold values that are larger than a byte, do they? You could save 20% of SRAM by making the type of those arrays byte, instead of int.

Thanks for the tip, though I was aware of this one. Originally I had arrays storing entire 24 bit colors and when I'm tinkering I tend to leave things as they were in case I wanted to go back, but I think I'm pretty happy with this (unless you have any suggestions on how I would go about "buffering" the entire strand). The only thing I was going to change was to use HSB instead of RGB + Brightness, which would save even more space.

dc42:
Rather than cover up the bug, why not fix it? Here is the code concerned:

You mean, is there something else wrong other than what I mentioned in my reply? I made the change I mentioned and it isn't writing to entry 100 anymore, but if there is something else wrong there I don't see it.