Imagine that is NOT what your code does. You have an array of 36 elements, indexed 0-35. You assign an index (Fade2Value) using map to get a value between 0..36 INCLUSIVE. You then use this index to access the array - OUT OF BOUNDS. It doesn't matter what you do later, you have already broken the code
fadeValue2 = map(fadeValue1, 0, 1023, 0, 36);
charselect = Input[fadeValue2];