Encapsulate random piece selection
Memoize calls to bounds functions