I am writing a small open-source web application to managing characters in a fantasy role playing game.
When a new character is generated, 6 random values between 3 and 18 are generated by the application and assigned one each to the "Strength", "Dexterity", "Constitution", "Intelligence", "Wisdom", and "Charisma" ability scores.
The player can then rearrange them in any order, assigning each of the original 6 numbers to the ability scores of their choosing. They cannot add or remove any of the 6 numbers and must use all 6 of them. Note that the input fields for each score are read-only.
Once the players are satisfied with their choices, they can click the "Lock Scores" checkbox. This will cause the input fields to become read-write (required for later increasing the scores) and the arrow buttons and re-roll button to disappear.
I've designed the following UI (mock-up):
Is there a better UI for handling this type of user interaction?
One program that I have (RPGSuite's Traveller Character Generator) allows assigning scores to character attributes; the way they do it is simply to dump the scores into a "tray", and allow the user to drag-and-drop them in the appropriate attributes, which are presented in the conventional order for Traveller.