I am working with a diverse community, where some are not very technical. I'd like to assess the technical/security effort to create and issue a wallet on behalf of these people.
If you want to make it secure, create a key pair directly in browser, and never send secret key over network (even if it's your own API).
With Stellar JS SDK:
//generate an account var pair = StellarSdk.Keypair.random(); pair.secret(); // SAV76USXIJOBMEQXPANUOQM6F5LIOTLPDIDVRJBFFE2MDJXG24TAPUU7 pair.publicKey(); // GCFXHS4GXL6BVUCXBWXGTITROWLVYXQKQLF4YH5O5JT3YZXCYPAFBJZB
Once the account key pair is generated, you need to fund it with at least 1XLM in order to "create" an account on the Stellar ledger. Your users may do it by themselves, or you can pay a minimum required balance on their behalf. Here is an example for sending lumens.
Send them to https://www.stellar.org/account-viewer and let them create their own accounts. Insist on saving their own public/secret key and not sharing it with any person or webpage.
Then ask them for the public key so you can send them one XLM in order to activate the account so they can check their balance and see everything is working fine.
Then they can do their own research to use one of the many wallets available.