I'm not management by any means, but the place I'm at has been doing it the same way since before I got there, and it seems to work well.
We have nine holidays...New Year's Eve, New Year's Day, Fourth of July, Memorial Day, Labor Day, Christmas Eve, Christmas Day, Thanksgiving, and day after Thanksgiving. These are then sub-divided into groups of three, which do not change. Staff is then split into three groups and assigned to one of the holiday groups, which rotate. For example, let's say I'm in group 2...this year I'll work Fourth of July, Thanksgiving, and New Year's Eve, next year I'll work Memorial Day, day after Thanksgiving, and Christmas Day, next year I'll work New Year's Day, Labor Day, and Christmas Eve. Then the rotation starts again.
Full time staff is required to work every third weekend, unless other arrangements are made with management (usually to work every weekend b/c of school). If you need time off on your weekend, you're responsible for finding someone to switch with you. Call ins on weekends mean you have to work an extra weekend day on the next schedule.
It's beneficial b/c I know what my holidays are going to be for years in advance, as well as what weekend I'll be on. Makes it easier for me to plan my life around work.
Hope that helps!