I need to find out a method to determine how many items should appear per column in a multiple column list to achieve the most visual balance. Here are my criteria:
- The list should only be split into multiple columns if the item count is greater than 10.
- If multiple columns are required, they should contain no less than 5 (except for the last column in case of a remainder) and no more than 10 items.
- If all columns cannot contain an equal number of items
- All but the last column should be equal in number.
- The number of items in each column should be optimized to achieve the smallest difference between the last column and the other column(s).

Well, your requirements and your examples appear a bit contradictory. For instance, your second example could be divided into two columns with 11 items in each, and satisfy your criteria. Let’s assume that for rule #2 you meant that there should be <= 10 items / column.
In addition, I think you need to add another rule to make the requirements sensible:
The number of columns must not be greater than what is required to accomodate overflow.Otherwise, you will often end up with degenerate solutions where you have far more columns than you need. For example, in the case of 26 items you probably don’t want 13 columns of 2 items each.
If that’s case, here’s a simple calculation that should work well and is easy to understand:
Now you’ll create N-1 columns of items (having `numberOfItemsPerColumn each) and the overflow will go in the last column. By this definition, the overflow should be minimized in the last column.