Preheat oven to 350° degrees F. Line 1 muffin tin with 12 paper liners; set aside.
In a large bowl, beat the cake mix, water, eggs, oil, and dry pudding mix powder together with a handheld electric mixer on medium speed until smooth and creamy, about 2 minutes. Portion the batter evenly among 6 small bowls. Tint each bowl a different color of the rainbow. For my cupcakes, I used red, orange, yellow, green, blue, and purple. For best results, I like concentrated gel food coloring for this.
Spoon a heaping teaspoonful of purple batter into the bottom of a muffin cup. Top with a teaspoon of blue, then a teaspoon of green, then a teaspoon of yellow, etc. Or, you can alternate cupcakes, starting with red on bottom and ending with purple on top like I did. Do NOT swirl the colors together. It's okay if the colors don't completely line up; this is what makes them look unique and cool! Swirling, however, may muddy the colors.
Bake for 15-18 minutes or until a toothpick inserted near the center comes out clean or with moist, but not wet, crumbs. Cool completely.
For the buttercream: In a large mixing bowl, beat together the butter and vanilla until smooth. Gradually add in the confectioners' sugar, one cup at a time, alternating with the heavy cream until frosting is light and fluffy.
Pipe or spread the frosting onto the cooled cupcakes. Garnish with rainbow sprinkles or sour rainbow candy belts cut in half and arced onto the cupcake frosting.