You might prioritize the tasks into a backlog on a Kanban board.
Set a board policy that tasks are pulled by priority so that the most important tasks (relatively) are always being worked.
Either assign the tasks at a daily standup, or let team members pull them into their own Work In Progress column. Limit the WIP for maximum workflow.
With a daily standup, you will be have the agility to reassign tasks if needed, change priorities based on what you've learned, swarm to problem items and maximize flow. Focus the team on completing work rather than starting it.
The team members will pull new work into their WIP column as they complete work. If you set a limit of say, 2 items in WIP at a time, team members will move a completed task to the 'done' column and have an open slot in their WIP column. So the fastest people will automatically pull in work without your having to assign it.
Control quality by defining 'done.' For instance, done means 'documentation is updated, code is commented, tracking spreadsheet updated,' or whatever is appropriate to quality control on this project.
Because all the work is "on the board," tracking progress will be simplified.
It's not a silver bullet, but it might solve your problems and keep it simple for the team.