For basketball, I don't necessarily believe playing the Duke's, Kentucky's, UNC's, Kansas's, etc. every year is that great a thing. One or two of those top programs a year, yes absolutely. And luckily, with OSU being involved in that preseason tournament classic starting next year, they'll be seeing at least one of those schools plus hopefully a top-level ACC team in the B1G-ACC Challenge.
Along with that, I think it would always be good practice to play 2-3 other good high-major programs each year (Texas, Georgetown, Marquette, Baylor, Tennessee, Memphis, Gonzaga), plus 2-3 really good mid-major schools who you know will have a chance at making the NCAA tournament. For instance, this year we knew before the season started that Mercer would be a good team (barely missed out on the tournament last year and returned everyone), New Mexico would be good, Belmont, Davidson, etc.
Basketball scheduling is much more fluid each year, with games being scheduled prior to that season rather than 5-7 years in advance. You can schedule teams who you have a pretty good idea will be good and give you a challenge.
Ideal type of schedule each year would be: Top-flight programs (Kansas, @UNC), ACC challenge (Duke/Syracuse), good programs (@ Texas, Villanova, Memphis), and good mid-major (Belmont, Western Kentucky). That is 7-8 possible tournament teams, mixed in with 7-8 sure wins. This is what Michigan State does each and every year, and they are always better for it in the long run.