random choice generation implemented